问题标签 [jpa-2.1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - 在 JPA 2.1 中使用标准 API 批量删除
给定以下批量删除行的代码。
JPA 2.1 标准 API 提供CriteriaDelete
用于执行批量删除。因此,以下代码执行DELETE FROM city WHERE id IN(...)
查询。
但这不应该等同于第一种情况。第一种情况的等价物是什么?它应该批量执行删除。
jpa - JPA 存储库无法正常工作
我是 Open JPA 的新手,我正在将我的应用程序数据库服务从以 Hibernate 作为供应商提供者的 JPA 迁移到以 OpenJPA 作为供应商提供者的 JPA。一切都很好,但我无法迁移我的存储库。我收到以下错误:
这是我的实体:
和我的存储库:
你能帮我纠正这个错误吗?
java - JPQL:错误编译 - 状态字段“e.e2.e3”无法解析为有效类型
我有这个我无法解决的错误。
命名查询:
ERD:
实体:
加入实体:
用户组:
道:
jakarta-ee - JPA 2.1 中静态元模型类上的“需要编译”徽章
给定以下环境以在 Java EE 7 中运行企业应用程序。
- GlassFish 服务器 4.0
- NetBeans IDE 8.0
- JDK 1.7
- 具有 JPA 2.1 的 EclipseLink 2.5.1
- EclipseLink 自身提供的 EclipseLink 元模型生成器 - 2.5.1.v20130918-f2b9fc5
- 运行 PrimeFaces 5.0、PrimeFaces Extension 2.0、OmniFaces 1.7 的 JSF 2.2.6
在一些持久性实体类中,我根据需要手动提交了一些更改(过去已经完成了很多次,但没有造成任何问题)。之后,生成的元模型中的某些类上有一个扳手图标,上面写着“需要编译”,当鼠标按钮悬停在它们上方时,如下面的快照所示。
我从服务器取消部署应用程序,停止然后启动服务器,进行清理和构建,最后从头开始部署,但一切都是徒劳的。
没有编译时错误。项目部署成功。运行时发生异常,当客户端尝试使用一个或多个此类类的页面时,指示“没有此类-java.lang.NoClassDefFoundError
”。
我还删除了整个元模型以及整个构建文件夹,并让 IDE 从头开始重新生成模型,但没有任何尝试成功。
除此之外,还删除了生成的文件夹并清理了 .osgi-cache 中的${GlassFishHome}/domains/domain1
.
可能是什么原因?什么时候会发生?
hibernate - JPA:在实体类中添加 toString 方法时出现 java.lang.StackOverflowError
一切正常,直到我添加toSting()
到我的实体类中。
之后我开始在运行时收到以下错误:
编辑:添加了学生实体的代码
java - @Converter 注释类没有被 jpa 自动检测到
@Converter(introduced since JPA2.1)
似乎是将数据库值切换为我们希望在 java 代码中看到的值的一种非常方便的方法。但是,我无法让这个东西工作。JPA 似乎不知道我编写的转换器并试图自行将值转换为适当的类。
这是我写的代码:
模型中写的对应部分为:
运行查询时出现以下错误:
我找到了在persistence.xml
. 但是,到目前为止,我没有使用 persistence.xml 并希望继续这种方式。我的带有注释的模型类@Entity
会被自动检测到。这是我为此使用的代码:
我@Entity
在这个包(或任何子包)中的所有类都被检测到了。但是,不是由 DateConverter 注释的@Converter
。我在这里想念什么。
我还尝试在属性中添加以下内容:
PS:请不要详细说明我为什么要将随机字符串转换为日期。这只是一个例子。
hibernate - 如何在 JPA 2.1 中进行批量更新、删除、插入时调用 @PreUpdate、@PrePersist、@PreRemove 等回调方法?
如何在 JPA 2.1中调用由@PreUpdate
(包括@PrePersist
和其他)注释的方法?@PreRemove
以以下CriteriaUpdate
查询为例:
@PreUpdate
给定关联实体中修饰的方法- Brand
。
仅在使用更新行时调用此方法
当相关操作涉及标准 API 时,如何调用由@PreUpdate
(or @PrePersist
, ) 修饰的方法?@PreRemove
CriteraUpdate
spring - HSQLDB + EclipseLink + 生成 DDL + DATE JODA TIME = 错误的 TIMESTAMP
我在用着:
我有这个实体:
当 HSQLDB/Eclipselink 生成 DDL 时,它生成 dabase 字段为:
当我访问(通过选择)这个实体时,我的转换器得到 ajava.sql.Timestamp
而不是java.sql.Date
并将值转换为 aLocalDateTime
而不是LocalDate
。
如何强制将字段生成为:
hibernate - 使用 JPA 2.1 中的条件从多对多关系中删除
我正在使用具有 JPA 2.1 的 EclipseLink 2.5.1(和 Hibernate 4.3.5 final)。给定 MySQL 中的下表。
- 产品
- prod_colour(连接表)
- 颜色
产品与其颜色之间存在多对多的关系。
一种产品可以有多种颜色,而一种颜色又可以与多种产品相关联。这种关系在数据库中由这些表表示。
该prod_colour
表有两个引用列prod_id
,并分别colour_id
来自其相关的父表product
和colour
。
很明显,实体类Product
有一个颜色列表——java.util.List<Colour>
命名为colourList
.
实体类Colour
有一个产品列表 -java.util.List<Product>
名为productList
.
Colour
实体中的关系:
Product
实体中的关系:
连接表中的一行prod_colour
可以按照以下方式删除:
我们可以有一个等效的CriteriaDelete
查询来执行相同的操作吗?
如下查询
不能直观地编写,因为没有要在prod_colour
其上执行此查询的连接表的实体类。
JPA 2.1 是否允许类似的东西来构造这种查询?
spring - @Transactional 注解 - Spring 中的类级别和方法级别
请考虑 Spring 中的以下情况(我正在使用 Spring 4.0.0 GA 和 Hibernate 4.3.5 final)。
在这种情况下,我期望以下行
在changePassword()
方法之前,以便@Transactional
可以覆盖类级别的注释。否则,类级别注释使用readOnly = true
也适用于此方法。因此,更新操作不应该发生,因为事务是只读的。
那么在这种情况下 Spring 是如何进行更新操作的呢?