问题标签 [jpa-2.0]

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 回答
572 浏览

hibernate - Spring 3 Forms + ModelAttribute + Deteched Entity

使用 Spring Forms 和 Hibernate 保存实体时,我使用以下控制器方法(简化)来执行此操作。

当我尝试使用相同的方法对其进行编辑时,我得到一个“deteched entity”异常:

它表明实体在提交表单后处于非托管状态(这是有道理的)。我怎么能保存更新的实体呢?这样做的正确方法是什么?

我正在使用 Spring 3 和 Hibernate 3.5。

0 投票
1 回答
12177 浏览

java - 如何使用 JPA Criteria API 在左连接上指定多个条件?

我想转换以下 SQL 查询:

进入基于 JPA Criteria 的查询。

我创建了一个实体来表示自联接:

我使用以下代码创建 JPA 查询

这是我运行这段代码时 Hibernate 自动生成的查询。

我尝试了多种方法,包括删除cq.where代码行,但生成的查询与我原来的查询不匹配。我配置错了吗?

0 投票
4 回答
16380 浏览

java - JPA 和公历日历

JPA 1.0 是否支持映射GregorianCalendar?我在 JPA 1.0 的映射文件规范中没有找到任何关于GregorianCalendar. JPA 2.0 怎么样?

0 投票
2 回答
18461 浏览

java - 即使在一对多关系(JPA/Hibernate)上使用 orphanRemoval=true 时,孤儿仍保留在数据库中

_

更新此 Set 时,现有的 activePolicyRules 将其 category_policy_id 在数据库中设置为 null 并插入新的。我想删除原始的。

我认为添加 orphanRemoval = true 可以做到这一点,但事实并非如此。我在这方面看到的其他问题似乎具有双向关系并将父级设置为 null 解决了它,但这不是双向关系。

有什么建议么?

使用休眠 3.5.3

编辑:仅当数据库中存在现有的 AbstractPolicyRule 时才会发生这种情况,我将其从列表中删除,然后再次保存类别。它的外键 category_policy_id 设置为 null 而不是被删除。

还尝试了一个连接表,因为 Hibernate 文档不鼓励以前的方式:

这有同样的问题。映射表中的行已删除,但 AbstractPolicyRule 仍包含已删除的项目。

0 投票
2 回答
2847 浏览

java - JPA(Hibernate)中注释字段和方法的区别?

JPA 规范或官方文档中是否有关于某些 JPA 实现的声明,这些声明描述了我们注释实体方法和注释实体字段时的行为?

就在几个小时前,我遇到了一个丑陋的问题:我将 JPA(通过 Hibernate,但在 java 代码中没有任何特定于 Hybernate 的东西)与 MS SQL Server 一起使用。我将所有注释都放在实体的字段上(直到今天我更喜欢这种风格)。

当我查看数据库时,我发现所有应该是外键并且应该包含一些整数(id)的表列实际上都有varbinary(255, null)类型并且包含一些东西的哈希值(我不知道那是什么,但它看起来像一个典型的MD5 哈希)。

最令人沮丧的是该应用程序运行正常。但偶尔(更新时)我得到 MS SQL 异常,指出我试图插入太长的值并且无法截断数据。

最终(作为实验)我从实体字段中删除了所有注释并将它们全部放在方法上。我重新创建了数据库,所有表都包含完美的 FK 列。这些列存储整数(ID,如 1、3、4 ...)。

那么,有人可以解释那是什么吗?

我找到了这个 SO 线程并且它被接受的答案说首选方法是将注释放在字段上。至少对于我的具体情况,我可以说这不是真的。

0 投票
4 回答
34510 浏览

java - 如何获取任何 JPA 实体的主键?

对于每个@Entity,我需要执行以下操作:

也就是说,如果实体不存在,则将其保留,并知道它是否存在。使用 Entity 我试图达到@Entity,尽管我意识到这不是继承关系。我可以使用什么类来引用每个 JPA 实体?我可以只创建一个接口/抽象类 MyEntities 并让它们全部继承,但就是这样吗?我希望代码更少。此外,我希望能够提取每个实体的主键,就像我在 .getId() 中尝试的那样。

0 投票
2 回答
8007 浏览

eclipselink - 如何删除所有 JPA 实体?

在我的测试代码中,我需要在每种方法处都有一个空白/空数据库。是否有代码可以实现这一目标,在测试的@Before 中调用?

0 投票
2 回答
539 浏览

java - 如何在条件 API 中编写 DDL?

考虑 如何删除所有 JPA 实体中的代码? 此处的文档http://download.oracle.com/docs/cd/E17410_01/javaee/6/tutorial/doc/gjitv.html 仅描述查询。

0 投票
6 回答
738 浏览

java - 为什么我的 equals 方法不起作用?

失败,报告:预期:java.util.HashSet<[...so geht die Legende ... ...legend has it ...]> 但是:java.util.HashSet<[...so geht die Legende ... ...传说有它... ]>

实际上,通过调试器,我看到两个集合都只包含一个含义,其中 objId = 1 。我期望含义类(@Entity)中的以下代码可以保证上述工作。

事实上,这个测试通过了:

那么我的问题可能是什么?它们都是 HashSet,它们的大小相同,并且它们内部的对象相等。确实

在它通过之前。然而这不会(但我不知道为什么):

所以,这就是问题所在。

这是测试代码:

db.get 只是包装了 em.find。InsertWords 应该保持 def 和 exp。

0 投票
3 回答
3507 浏览

hibernate - 使用 JPA 2 注释将子类主键设置为 auto_increment

我正在尝试使用 hbm2ddl 为我的项目生成数据库模式。我正在使用 JPA 2 注释来指定模式的外观。现在我遇到了一些继承 id 的问题。

我有一个抽象超类,我们称之为 AbstractSuperClass,它看起来像这样:

我已将 id 设置为自动生成的值,它转换为 SQL 的 auto_increment 约束。但是,当我查看生成的脚本时,我看不到子类表的 id 列中包含 auto_increment。

任何人都知道我怎么能得到它?当然,我可以手动指定它,但我希望它尽可能自动化。

谢谢。