How to do it...

  1. 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
}
  1. 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.
Reset
3.17.76.72