查询后分离大型列表的实体是否有益,即对这些实体使用默认模式,如:
// Find all
for List<Device> devices = em.createNamedQuery("find.*.devices", Device.class).getResultList();
// Detach all
for (Device d : devices) {
em.detach(d);
}
我们可以避免某种负面影响,比如错误地更新数据库,因为这些实体被视为&#34;只读&#34; (可以保证)或节省内存。
答案 0 :(得分:5)
如果您想使用数据库中没有任何更新的列表,您可以将对象分离。
您有以下选择:
如果您使用的是程序化交易,请不要打开交易。请注意,事务未打开:
EntityManager em = EntityManagerFactory.createEntityManager();
列出personList = em.query()
将您的方法标记为未支持的交易@TransactionAttribute(NOT_SUPPORTED)