我在 Hibernate 中使用 Spring + Spring Data JPA,我需要执行一些大型且昂贵的数据库操作。
我如何使用 StatelessSession
来执行这些操作?
最佳答案
一种解决方案是实现一个 Spring 工厂 bean 来创建这个 StatelessSession
并将其注入(inject)到您的自定义存储库实现中:
public class MyRepositoryImpl implements MyRepositoryCustom {
@Autowired
private StatelessSession statelessSession;
@Override
@Transactional
public void myBatchStatements() {
Criteria c = statelessSession.createCriteria(User.class);
ScrollableResults itemCursor = c.scroll();
while (itemCursor.next()) {
myUpdate((User) itemCursor.get(0));
}
itemCursor.close();
return true;
}
}
查看 StatelessSessionFactoryBean
和完整的要点 here .使用 Spring 3.2.2、Spring Data JPA 1.2.0 和 Hibernate 4.1.9。
感谢 JIRA以及附加 StatelessSessionFactoryBean
代码的人。希望这对某人有所帮助,它对我来说就像一种魅力。
关于spring - 如何将 StatelessSession 与 Spring Data JPA 和 Hibernate 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15460601/