使用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 – 在mssql的情况下,metadata.getTables结果集为空 2023-11-01
 - Java_进程与线程 2023-09-01
 - SpringBoot项目打成war和jar的区别说明 2022-12-07
 - springboot框架阿里开源低代码工具LowCodeEngine 2023-01-18
 - 基于Process#waitFor()阻塞问题的解决 2023-08-07
 - java JVM方法分派模型静态分派动态分派全面讲解 2023-01-29
 - Springboot中如何自动转JSON输出 2023-01-12
 - maven依赖传递和依赖冲突原理 2023-07-15
 - 通过netty把百度地图API获取的地理位置从Android端发送到Java服务器端的操作方法 2023-06-17
 - Java中JDBC的使用教程详解 2023-01-24
 
						
						
						
						
						
				
				
				
				