我在Java应用程序中使用Hibernate for ORM。我想编写自定义查询组合多个表,并使用像sum(salary)这样的DB函数。我还希望支持多个数据库,而无需为每个数据库一次又一次地编写SQL。目前遵循的方法是让存储过程特定于每个DB (Oracle、MySQL等),无论我们想要支持哪一个,我们都会更改应用程序中的配置文件。我正在寻找的是一个非常通用的解决方案,这样我就不需要为每个新功能编写存储过程或SQL。
发布于 2013-06-18 19:26:02
如果你真的想让它保持可移植性,你需要用HQL来做所有的事情。
您没有理由不能在HQL中执行多表连接和聚合函数,您只需将自己限制在它支持的那些表连接和聚合函数即可。
一旦你开始做特定于数据库供应商的事情,根据定义,你不再是独立于数据库的。
发布于 2013-06-18 19:20:19
HIbernate标准是一个完美的套件。
Hibernate提供了操作对象和RDBMS表中可用数据的替代方法。其中一种方法是Criteria API,它允许您以编程方式构建一个criteria查询对象,您可以在其中应用过滤规则和逻辑条件。
http://www.tutorialspoint.com/hibernate/hibernate_criteria_queries.htm
https://stackoverflow.com/questions/17167520
复制相似问题