我在Java应用程序中使用Hibernate for ORM。我想编写自定义查询,组合多个表并使用像sum(salary)
这样的数据库函数。
我还希望支持多个数据库,而无需为每个数据库反复编写SQL。目前采用的方法
具有特定于每个数据库(Oracle
,MySQL
等)的存储过程以及我们想要支持的任何一个,我们更改应用程序中的配置文件。
我正在寻找的是一个非常通用的解决方案,因此我不需要为每个新功能编写存储过程或SQL。
答案 0 :(得分:1)
一个完美的套件是HIbernate Criterias
Hibernate提供了另外的操作对象的方法,并提供了RDBMS表中可用的数据。其中一种方法是Criteria API,它允许您以编程方式构建条件查询对象,您可以在其中应用过滤规则和逻辑条件。
http://www.tutorialspoint.com/hibernate/hibernate_criteria_queries.htm
答案 1 :(得分:1)
如果你真的想保持便携性,你需要使用HQL来完成所有工作。
你没有理由不能在HQL中进行多表连接和聚合功能,你只需要将自己限制在它支持的那些。
根据定义,一旦开始执行数据库供应商特定的事情,就不再是数据库独立的了。