Hibernate で Spring + Spring Data JPA を使用しており、大規模で高価なデータベース操作を実行する必要があります。
StatelessSession
を使用してこれらの種類の操作を実行するにはどうすればよいですか?
Hibernate で Spring + Spring Data JPA を使用しており、大規模で高価なデータベース操作を実行する必要があります。
StatelessSession
を使用してこれらの種類の操作を実行するにはどうすればよいですか?
解決策は、Spring ファクトリ Bean を実装してこれを作成StatelessSession
し、カスタム リポジトリの実装に注入することです。
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
および完全な Gistはこちらで確認してください。Spring 3.2.2、Spring Data JPA 1.2.0、および Hibernate 4.1.9 を使用。
このJIRAとコードを添付してくれた人に感謝しStatelessSessionFactoryBean
ます。これが誰かの役に立てば幸いです。私にとっては魅力的でした。