使用Spring JPA有一种简单的方法来使用本机查询但保持数据库独立性,例如使用最适合的查询?目前我通过从环境中检查当前设置的Dialect并调用我的Repository的正确方法来执行此操作:public Foo fetchFoo() {if (POST...
使用Spring JPA有一种简单的方法来使用本机查询但保持数据库独立性,例如使用最适合的查询?
目前我通过从环境中检查当前设置的Dialect并调用我的Repository的正确方法来执行此操作:
public Foo fetchFoo() {
if (POSTGRES_DIALECT.equals(env.getRequiredProperty("hibernate.dialect"))) {
return repo.postgresOptimizedGetFoo();
}
return repo.getFoo();
}
这有效,但我觉得有一种更好的方法,或者我错过了一些东西.特别是因为(Spring)JPA允许它很容易地使用本机查询,但这打破了它的一大优势:数据库独立性.
解决方法:
根据我的理解,这可以通过使用@Transactional(readOnly = false)来实现,然后不是调用session.createQuery,而是可以使用session.createSQLQuery,如本例所示.
您的sql可以是您的任何本机查询.
希望这对你有用.
编程基础网
本文标题为:java – 使用本机查询但保持数据库独立性
基础教程推荐
猜你喜欢
- java使用软引用实现缓存机制示例 2023-04-05
- Java详解AVL树的应用 2023-02-27
- log4j中logger标签中additivity属性的用法说明 2023-08-10
- JVM类加载器之ClassLoader的使用详解 2023-06-10
- Springboot实现图片上传功能的示例代码 2023-06-01
- Java面试synchronized偏向锁后hashcode存址 2022-11-11
- 向java SQL Date添加小时,分钟和秒 2023-10-30
- Java定义画板类的方法 2022-12-27
- java – SQLStateConverter.handledNonSpecificException hibernate 2023-10-31
- Java文件操作之序列化与对象处理流详解 2023-05-18
