问题标签 [jpa-annotations]

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.

0 投票
0 回答
106 浏览

java - 在 Hibernate 3.5 中,约束和外连接的注解等价物是什么?

我目前正在将应用程序从使用休眠映射文件转换(.hbm.xml)hibernate/jpa注释(使用 jpa 注释首选项)。

我在一对一关系的一些休眠映射文件中遇到了这两个属性:

我一直在大量研究这两个,但我找不到一个直接的答案。

似乎optional="true"|"false"可以处理这两个问题,但是在没有参考文档或官方来源的情况下接受这个作为答案是错误的。

0 投票
2 回答
3538 浏览

mysql - @oneToMany 和 @JoinTable 在 jpa 中具有唯一约束?

我有两个表是 USER 实体有

角色实体有用户

表 user_role 的描述是

注意:一个用户可以有多个角色,我已经通过脚本创建了角色,有 ID:10001、10002、10003 等

在 user_role 角色表中,我插入了一个具有所有角色的用户 800001,因此该表看起来像

因此,如果我尝试将角色分配给预定义角色的新用户,它会通过我这个错误

错误报告 - SQL 错误:ORA-00001:违反唯一约束 (SYSTEM.UK_LPLHY51JOJA1LP4465QK2E0AF) 00001。 00000 - “违反唯一约束 (%s.%s)” *原因:UPDATE 或 INSERT 语句试图插入重复键。对于在 DBMS MAC 模式下配置的 Trusted Oracle,如果在不同级别存在重复条目,您可能会看到此消息。*操作:要么删除唯一限制,要么不插入密钥。

0 投票
1 回答
19701 浏览

jpa - JPA/Hibernate @OrderBy 注释,具有多列和每个列的 ASC/DESC

我想使用带有多个列的@OrderBy 注释对 OneToMany 字段进行排序,并为每个字段指定排序顺序,但我似乎无法在任何地方找到有关如何或是否不可能的信息。注释的规格说:

所以我的猜测是这是不可能的,但我还是更愿意问。

放置以下内容会在部署时引发 HibernateException:

生成:

谢谢

0 投票
0 回答
118 浏览

hibernate - 在 JPA 中映射子对象列表 - 一对多

我正在使用 JPA 开发我的第一个应用程序。我有一个要求,父对象有一个子对象列表,并且该列表没有单独输入到它的表中。

这是我的实体。

投标 :-

招标地址:-

我使用招标的 setter 方法为招标对象设置地址。这就是我将 Tender 对象保存到数据库的方式。我为此使用实体管理器。

我需要的是同时保存地址实体和地址表以引用封装特定地址的投标对象。

@JoinColumn我尝试使用and进行双向一对多映射@OneToMany(mappedBy="tender", cascade = CascadeType.ALL)。但它将引用列标记为 NULL(地址表中的投标 id 字段)

现在我的问题是,我的要求有效吗?我是否必须先保留招标对象并获取它的 ID,然后再保留 Address 对象?

如果我的要求是有效的,我怎样才能实现它?你能给我推荐什么?请在我的实体中提供我需要的注释。

0 投票
1 回答
8441 浏览

hibernate - Hibernate递归映射父/子结构 - 检索数据时的StackOverflowError

我正在使用 Hibernate 5.2.7.Final 和本机 Hibernate API。我有一个具有递归关系的 Employee 实体:

下表是由hibernate创建的:

我成功地坚持经理和员工:

现在检索员工将导致 StackOverFlowError。

线程“主”java.lang.StackOverflowError 中的异常

我认为我可以坚持这样的 Employee 对象图的方式非常方便。但我不知道如何从表中检索这样的图表。

问题:如何从基础表中有意义地检索员工信息。我认为解决方法是创建一个新实体来查看 Employee 表,例如

我能做到这一点吗?以及如何使用 JPA 注释?

0 投票
1 回答
604 浏览

hibernate - 这些 @Table(uniqueConstraints) 和 @Table(indexes) 注释是否相同?

在 JPA / Hibernate 中创建索引时,这些完全相同吗?

和:

如果不是,有什么区别?

0 投票
0 回答
39 浏览

java - 如何自定义用于获取一对多关系的“许多”相关实体的查询?

我正在开发一个问答式 Web 应用程序,其中两个实体是问答。一个问题有很多答案。此外,一个答案有很多答案(我将其称为答案的子答案):

在获取特定答案的子答案时,Hibernate 使用类似于以下内容的查询:

我想做的是自定义 WHERE 子句,以便也包含问题 ID;我想要这样的东西:

原因是我有一个关于我想使用的答案(question_id,parent_answer_id)的索引。我目前没有,也不想在 answers(parent_answer_id) 上添加索引,因此当前查询会导致全表扫描。

我尝试@JoinColumns在该childAnswers字段上使用,但这导致错误:org.hibernate.AnnotationException:标记为 mappedBy 的关联不得定义 @JoinTable 或 @JoinColumn 之类的数据库映射:test.domain.Answer.childAnswers

我也尝试@JoinColumns在该parentAnswer字段上使用,但这导致错误:org.hibernate.AnnotationException:引用 test.domain.Answer 的外键来自 test.domain.Answer 的列数错误。应该是 1

我的 JPA 提供程序是 Hibernate 5.2.17。

如何确保用于选择父答案的子答案的查询的 WHERE 子句包含父答案的问题 ID?

0 投票
1 回答
10 浏览

jpa - 对实体内的列进行分组

我有一个包含 2 列电话号码(区号和号码)的表格。当我定义实体时,我可以使用 2 个不同的变量来匹配列名。但是,当我在 jparepository 中使用它时,我想用一个电话号码进行搜索(这将是一个区号和号码的字符串)。

有没有办法在将实体定义为具有单个变量来保存 2 列的组合数据时对区号和号码进行分组?

0 投票
1 回答
317 浏览

hibernate - 通过 SecundaryTable 具有两个表的 JPA 一个实体

我无法使以下简化设置正常工作。我只想使用标准 API 获取 ONE 类中表的两个值。我不想将两个类与 @OneToOne 或 @OneToMany 等一起使用。

这可能吗?JPA 不打算这样做吗?

第一张表:

第二张表:

实体类:

执行时抛出异常:

0 投票
2 回答
214 浏览

java - 从具有 Spring 和 JPA 注释的两个表之间具有外键关系的 html 表单(使用 Thymeleaf)保存数据的问题

我是 Spring 开发的新手,我正在尝试了解关系注释是如何工作的。我有两个实体,用户和国家。用户与 Country 有 @ManyToOne 关系。

用户实体

国家实体

它在数据库中创建了我想要的所有内容,但我的问题是当我试图从表单中保存数据时。我的表单将输入名称和所有可能国家/地区之间的选择(之前加载了查询)。提供名称并选择国家后,应在我的 MySQL 数据库中写入带有名称和国家 ID 的行。我收到以下错误:

这是因为它需要 Country 类型,但我确实需要添加一行,其中包含与西班牙关联的名称和 id。我不需要创建整个 Country 对象。我不知道该怎么做,如果我做得正确。有人可以帮帮我吗?提前致谢。