我正在开发在WebSphere Server V8.5.5上运行的应用程序。 该应用程序具有数据库层,该参数调用3 MS SQL函数。 SQL函数由两个(最多三个)连接表组成。
什么更好?
我可以使用SQL函数(Java CallableStatement)吗?
我可以在JPA 2.0中直接使用SQL SELECT(NamedQuery)并且不使用sql函数吗?
我认为在JPA中使用SQL SELECT更清晰,更清晰。 什么更快?
我认为数据库查询(函数或jpa选择)是直接在数据库中执行的。这是真的吗?
我尝试过JPA 2.1。在WebSphere上调用函数并且它没有成功。
非常感谢。
答案 0 :(得分:0)
我认为在JPA中使用SQL SELECT更清晰,更清晰。什么更快?
我认为数据库查询(函数或jpa选择)是直接在数据库中执行的。这是真的吗?
当查询字符串不复杂时,最好对本机查询使用命名查询。在考虑表现时。你必须知道引擎盖下发生了什么。 您可能已经使用简单的JDBC编写了一些东西,因此您知道如何查询 传递给驱动程序并发送到数据库。使用HQL或JPA-QL时,查询首先有 被解析成数据库可以理解的SQL语言。在这种情况下,我们有一个额外的 解析之间的步骤。注意Native SQL查询,包括存储过程调用,持久性 框架仍然负责将JDBC结果集映射到持久对象的图形。
我尝试过JPA 2.1。在WebSphere上调用函数并且它没有成功。
调用数据库函数时必须使用本机查询。在这种情况下,必须采取痛苦的地图做映射。有关详细信息,请参阅JPA : How to convert a native query result set to POJO class collection。