问题标签 [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.
hibernate - Spring 3 Forms + ModelAttribute + Deteched Entity
使用 Spring Forms 和 Hibernate 保存实体时,我使用以下控制器方法(简化)来执行此操作。
当我尝试使用相同的方法对其进行编辑时,我得到一个“deteched entity”异常:
它表明实体在提交表单后处于非托管状态(这是有道理的)。我怎么能保存更新的实体呢?这样做的正确方法是什么?
我正在使用 Spring 3 和 Hibernate 3.5。
java - 如何使用 JPA Criteria API 在左连接上指定多个条件?
我想转换以下 SQL 查询:
进入基于 JPA Criteria 的查询。
我创建了一个实体来表示自联接:
我使用以下代码创建 JPA 查询
这是我运行这段代码时 Hibernate 自动生成的查询。
我尝试了多种方法,包括删除cq.where
代码行,但生成的查询与我原来的查询不匹配。我配置错了吗?
java - JPA 和公历日历
JPA 1.0 是否支持映射GregorianCalendar
?我在 JPA 1.0 的映射文件规范中没有找到任何关于GregorianCalendar
. JPA 2.0 怎么样?
java - 即使在一对多关系(JPA/Hibernate)上使用 orphanRemoval=true 时,孤儿仍保留在数据库中
_
更新此 Set 时,现有的 activePolicyRules 将其 category_policy_id 在数据库中设置为 null 并插入新的。我想删除原始的。
我认为添加 orphanRemoval = true 可以做到这一点,但事实并非如此。我在这方面看到的其他问题似乎具有双向关系并将父级设置为 null 解决了它,但这不是双向关系。
有什么建议么?
使用休眠 3.5.3
编辑:仅当数据库中存在现有的 AbstractPolicyRule 时才会发生这种情况,我将其从列表中删除,然后再次保存类别。它的外键 category_policy_id 设置为 null 而不是被删除。
还尝试了一个连接表,因为 Hibernate 文档不鼓励以前的方式:
这有同样的问题。映射表中的行已删除,但 AbstractPolicyRule 仍包含已删除的项目。
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 线程并且它被接受的答案说首选方法是将注释放在字段上。至少对于我的具体情况,我可以说这不是真的。
java - 如何获取任何 JPA 实体的主键?
对于每个@Entity,我需要执行以下操作:
也就是说,如果实体不存在,则将其保留,并知道它是否存在。使用 Entity 我试图达到@Entity,尽管我意识到这不是继承关系。我可以使用什么类来引用每个 JPA 实体?我可以只创建一个接口/抽象类 MyEntities 并让它们全部继承,但就是这样吗?我希望代码更少。此外,我希望能够提取每个实体的主键,就像我在 .getId() 中尝试的那样。
eclipselink - 如何删除所有 JPA 实体?
在我的测试代码中,我需要在每种方法处都有一个空白/空数据库。是否有代码可以实现这一目标,在测试的@Before 中调用?
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。
hibernate - 使用 JPA 2 注释将子类主键设置为 auto_increment
我正在尝试使用 hbm2ddl 为我的项目生成数据库模式。我正在使用 JPA 2 注释来指定模式的外观。现在我遇到了一些继承 id 的问题。
我有一个抽象超类,我们称之为 AbstractSuperClass,它看起来像这样:
我已将 id 设置为自动生成的值,它转换为 SQL 的 auto_increment 约束。但是,当我查看生成的脚本时,我看不到子类表的 id 列中包含 auto_increment。
任何人都知道我怎么能得到它?当然,我可以手动指定它,但我希望它尽可能自动化。
谢谢。