I have a really strange sometimes if I load my data with JPA some enetities have null values even if there are values in the database. The data is not newly created and it's not happening to every record. The only value which is set is the primary key
I coulnd't find anything similar while researching
AbstarctFacade.java
import java.util.List;
import javax.persistence.EntityManager;
public abstract class AbstractFacade<T> {
private Class<T> entityClass;
public AbstractFacade(Class<T> entityClass) {
this.entityClass = entityClass;
}
protected abstract EntityManager getEntityManager();
public void create(T entity) {
getEntityManager().persist(entity);
}
public void edit(T entity) {
getEntityManager().merge(entity);
}
public void remove(T entity) {
getEntityManager().remove(getEntityManager().merge(entity));
}
public void detach(T entity) {
getEntityManager().detach(entity);
}
public T find(Object id) {
return getEntityManager().find(entityClass, id);
}
public List<T> findAll() {
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
return getEntityManager().createQuery(cq).getResultList();
}
}
ItemFacade.java
import ch.itwork.map.core.util.AbstractFacade;
import javax.ejb.Stateless;
import javax.persistence.Cache;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Stateless
public class ItemFacade extends AbstractFacade<Item> {
@PersistenceContext(unitName = "...")
private EntityManager em;
@Override
protected EntityManager getEntityManager() {
em.clear();
Cache cache = em.getEntityManagerFactory().getCache();
cache.evict(Item.class);
return em;
}
public void clearCache() {
em.clear();
Cache cache = em.getEntityManagerFactory().getCache();
cache.evict(Item.class);
}
public ItemFacade() {
super(Item.class);
}
}
This is the call which causes the problem.
getItemFacade().findAll();