在查询后分离大型列表的实体是否有益,即对这些实体使用默认模式,例如:
// Find all
for List<Device> devices = em.createNamedQuery("find.*.devices", Device.class).getResultList();
// Detach all
for (Device d : devices) {
em.detach(d);
}
Run Code Online (Sandbox Code Playgroud)
我们可以避免某种负面影响,例如错误地为被认为是"只读"(可以保证)的实体更新数据库或者节省内存.
如果要在数据库中使用没有任何更新的列表,则可以将对象分离.
您有以下选择:
如果您使用的是程序化交易,请不要打开交易.请注意,事务未打开:
EntityManager em = EntityManagerFactory.createEntityManager();
列表personList = em.query()
将您的方法标记为未支持的事务@TransactionAttribute(NOT_SUPPORTED)
| 归档时间: |
|
| 查看次数: |
2525 次 |
| 最近记录: |