- Let's create a User class to be our cached object:
public class User {
private String name;
private String email;
//DO NOT FORGET TO IMPLEMENT THE GETTERS AND SETTERS
}
- And then create a singleton to hold our user list cache:
@Singleton
@Startup
public class UserCacheBean {
protected Queue<User> cache = null;
@PersistenceContext
private EntityManager em;
public UserCacheBean() {
}
protected void loadCache() {
List<User> list = em.createQuery("SELECT u FROM USER
as u").getResultList();
list.forEach((user) -> {
cache.add(user);
});
}
@Lock(LockType.READ)
public List<User> get() {
return cache.stream().collect(Collectors.toList());
}
@PostConstruct
protected void init() {
cache = new ConcurrentLinkedQueue<>();
loadCache();
}
}
..................Content has been hidden....................
You can't read the all page of ebook, please click
here login for view all page.