问题标签 [hibernate-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 投票
1 回答
104 浏览

hibernate - I need to carry forward the primary table's primary key to a foreign key field in dependent table

I have 2 entities Customer and address please find the code below, I have omitted boiler plate code for simplicity.

and Address class is :

I need to persist the customer id as a foreign key in address table.

0 投票
0 回答
1552 浏览

hibernate - Hibernate - 实体通过带有附加列的连接表引用自身

我有一个名为 Part 的带注释的实体。它由一个“id”和一些其他变量组成。我有另一个名为“bomdefinitions”的表。该表有三列(数量、父级、目标)(我知道目标是一个愚蠢的名称,但我无法更改它,因为数据库已经存在)。这个想法是一个 Part 可以由许多其他部分组成,也可以在许多其他部分中使用,并且表“bomdefinitions”说明了哪个父级与它相关联的“目标”以及它使用了多少。

问题是,如果我注释掉 Part.java 中的 OneToMany 关系之一并保留另一个,它工作正常,但如果我在我的代码中同时拥有它们,尝试访问它们中的任何一个都会导致 Hibernate 查询的无限循环.

我可以找到将实体映射到自身的示例,使用带有额外列的连接表映射实体的示例,以及进行注释的各种方法的示例,但在单个应用程序中没有做所有这些,以及我的各个示例can find 似乎在这里没有帮助。

任何在 Hibernate 方面有更多经验的人对我做错了什么有任何想法?

编辑(此代码导致无限循环):

这是输出中的查询 - 它以:

然后这两个查询无限重复:

BomDefinition.java(几乎取自“Java Persistence with Hibernate”)

部分.java:

0 投票
1 回答
748 浏览

hibernate - Hibernate Annotations 混淆中的复合键

我有两张桌子说'A'和'B'。第三个表'C'有两列直接引用'A'和'B',即'C'包含分别引用A的id和B的id的'A_id'和'B_id'。在“A_id”和“B_id”上定义了唯一键。但是“C”中没有 id 列。如何在不更改“C”架构的情况下为“C”定义模型类。我对使用 Hibernate 注释很陌生,所以请帮帮我。“A”和“B”还有其他列,并且已经定义了它们的模型类。

0 投票
3 回答
22052 浏览

hibernate - 如何防止 Hibernate 更新 NULL 值

hibernate 中是否有设置在保存休眠对象时忽略属性的空值?

注意
在我的例子中,我通过 Jackson 将 JSON 反序列化为 Hibernate Pojo。

JSON 仅包含 Pojo 的一些字段。如果我保存 Pojo,则不在 JSON 中的字段在 Pojo 中为空并休眠更新它们。

我遇到了设置updateable=false,但这不是 100% 的解决方案。 http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#entity-mapping-property

也许有人有另一个想法......

笔记2:

根据 Hibernate Docs,dynamicUpdate 注释正是这样做的

dynamicInsert / dynamicUpdate(默认为 false):
指定 INSERT / UPDATE SQL 应在运行时生成,并且仅包含值不为 null的列。

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#mapping-declaration-class

有趣的是,如果您通过dynamic-update文档在 XML 中定义它,请不要提及 NULL 值的处理。

动态更新(可选 - 默认为 false):
指定 UPDATE SQL 应该 > 在运行时生成,并且只能包含值已更改的那些列。

由于我同时使用注释xml 配置,hibernate 似乎忽略了我的dynamicUpdate=true注释。

0 投票
2 回答
7209 浏览

hibernate - Hibernate 会话工厂未找到在 DAO 注释中定义的 NamedQuery

我使用 Spring 和 Hibernate。在我的 DAO 中,我定义了一个会话工厂找不到的 NamedQuery,尽管我已将该 DAO 的包添加到 packagesToScan。

我的道:

这里是用于提供会话工厂的 Spring config 方法:

这里抛出的异常:

由于一些类似的 stackoverflow 问题,我将 hibernate @NamedQuery 注释替换为 JPA 等效项。没有帮助。

0 投票
2 回答
442 浏览

hibernate - 在 Hibernate 中用什么代替注释配置?

我以前用过AnnotationConfiguration,但现在已弃用

所以现在推荐使用Configurationinsted,但还是会报错: 配置.

现在如何建立会话工厂?

0 投票
2 回答
1273 浏览

java - 映射仅由没有 @IdClass 或 @EmbeddedId 的复合 PK 组成的类

我有两张桌子AB简单的PK。

我想映射一个新的关联类 AB ,它只存储 和 之间的关系AB与复合 PK idA+ idBAB没有任何额外的列,只有 和 之间的idA关系idB

AB是否可以使用单个类进行映射?我想避免创建一个新ABId类只是为了将它用作@IdClassor @EmbeddedIdin AB,并且我不想将它与or的@ManyToMany关联映射。AB

0 投票
2 回答
986 浏览

hibernate - Hibernate中事务的存在性检查

我与在春季论坛上发布此消息的人有类似的问题:http: //forum.springsource.org/archive/index.php/t-20943.html

基本上我正在为我工​​作的网站编写自动注册功能。如果用户存在于我们正在从我们的数据库中迁移用户而不是在我们的数据库中的第三方数据库中,那么登录过程将自动在我们的数据库中创建一个用户。

为此,我必须首先尝试使用电子邮件和密码对登录用户进行身份验证。如果失败,我会检查第三方数据库并尝试使用此信息创建用户。如上面的链接所示,似乎这种存在性检查后跟一个插入会导致该方法被 Hibernate 标记为仅回滚。

我曾尝试在存在检查中使用 Transactional Requires_New 来强制它进入一个新的事务,我希望这个事务将被标记为仅回滚而不是父事务,但这没有奏效。

谁能建议如何做到这一点?上面的链接建议插入和使用重复键错误来检查用户是否已经存在,但这看起来很混乱,需要重新设计。

顺便说一句,我们正在使用 Hibernate、Spring 和 Annotations 来处理事务。

0 投票
2 回答
890 浏览

java - Hibernate Annotation 加入问题

我正在尝试用我的两个表实现一个简单的连接操作,使用带有 spring3 mvc 的 hibernate 3 annotaions。

我有两张桌子:

员工

薪水

我创建了两个带注释的模态类:

雇员.java

工资.java

当我打开页面时出现以下错误

我的模态类有什么问题

非常感谢您的帮助,谢谢,VKS

0 投票
0 回答
940 浏览

java - @AttributeOverride 忽略不正确的覆盖,这是 JPA 还是 Hibernate 标准?

我注意到,如果我有一个MYENTITY包含列ID_A和的表ID_B,以及一个@Embeddable实体:

我以这种方式使用它@Entity

的覆盖inexistingProp被忽略,而不是引发不正确的映射异常。我还没有在任何地方找到这个文档,这是 JPA 行为吗?有没有关于这个问题的官方文件?


另外,我注意到如果@Embeddable已经有正确的映射("id_a")并且我@Column@AttributeOverridefrom更改id_afoo_bar_baz我得到这个错误:

org.hibernate.MappingException:无法在 org.hibernate.mapping.Table(MY_SCHEMA.MYENTITY) 及其相关的超级表和辅助表中找到具有逻辑名称的列:ID_A

我希望该错误会抱怨列FOO_BAR_BAZ不存在,而不是ID_A. 它为什么抱怨ID_A

更新:原来我得到这个错误是因为其他实体与MYENTITYwith相关@ManyToOne,并且id_a@JoinColumns.