1
36
与Hibernate标准API一样,JPA2.0标准API特别适合构建查询。 动态地 ,以处理查询结构因运行时条件而异的情况。 但还有更多。虽然比Hibernate的标准API更详细,但JPA标准API允许构建 类型安全 查询(如果使用元模型API)。下面是一个例子:
在上面的代码片段中,以下内容将引发编译错误,例如:
如果你想知道,
赞成的意见:
欺骗:
我总体上觉得JPQL更适合,但是标准API的类型安全性与JPQL(以及Hibernate标准API)有很大的区别。 也见
相关答案 |
2
4
JPA2.0标准API是用于构建查询的基于对象的API。我认为它能在 您有一个动态查询 它可以变成 更可读 如下
但使用时 静止的 查询更喜欢使用 外部化、可维护和可读 文件
如果您有一个模块化的应用程序,请为每个模块使用一个XML文件,如下所示
然后定义mapinf文件元素
|
3
1
如果生成实体元模型,则可以在静态类型形式中使用JPA2标准。它比JPQL更详细,但是是静态类型的,并且直接支持动态查询构造。 静态类型查询语言的好处在于,您可以在编译时捕获更多的错误,并且还可以使用诸如autocomplete之类的IDE功能。 |
4
0
对于我来说,当您需要基于用户的输入创建查询时,jpa2发光的现实世界示例就在这里。我说的不是一个非常简单的带有一个参数的where。我的意思是当你在你的应用程序中做了一个高级搜索选项。当某个参数被填充时需要连接的一种。您不需要连接您的HQL或SQL来包含大量参数、额外的联接和函数。自定义SQL需要大量的测试来证明它的有效性。向hql和sql添加额外的搜索选项需要大量的修改,而这在jpa中可能更简单。 |
dvelopp · hibernate中@EmbeddedId内级联 7 年前 |
Pratap · 在JPQL中将整数转换为字符串 7 年前 |
Setix · JPA 2.0数据对于列表中的列太长 7 年前 |
Maksim Gumerov · 默默忽略remove() 9 年前 |
AlanObject · 我可以将JPA集合缩放多远(地图或列表) 9 年前 |