- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 MySQL/JPA,即使在提交后,持久实体上自动生成的 ID 也不会变得可用。这是发生这种情况的代码:
synchronized (em.getTransaction()) {
while (em.getTransaction().isActive()) {
em.getTransaction().wait();
}
em.getTransaction().begin();
try {
em.merge(transmissor);
em.merge(poco);
em.flush();
//em.refresh(poco);
System.out.println("ID: " + poco.getIdEstacao());
} catch (Exception ex) {
System.out.println(ex.toString());
ex.printStackTrace();
}
// Some other unrelated code...
em.getTransaction.commit();
em.getTransaction.notify();
System.out.println("ID: " + poco.getIdEstacao());
}
在 em.flush()
和 em.getTransaction.commit()
之后,poco.getIdEstacao
返回 null
。如果我尝试 em.refresh(poco)
它会抛出异常:
java.lang.IllegalArgumentException: Can not refresh not managed object:unesp.lebac.aquitel.dataLink.enitity.Poco[ idEstacao=null ].
有什么想法为什么会发生这种情况吗?提前致谢!
最佳答案
EntityManager.merge()
不会修改作为参数传递的对象,也不会使其托管。它将作为参数传递给托管实体实例的对象的状态复制,并返回此托管实体实例。所以如果你想获取托管实体,你需要
poco = em.merge(poco);
关于java - JPA @GenerateValue 始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22018462/
我很困惑,因为到处都提到只能将 @GenerateValue 与 @Id 一起使用。 但是:它可以与非主键属性一起使用吗? 最佳答案 JPA specification document提供了一个重要
我想知道如何在 JPA 中使用序列。我们有一个非 pk 字段,其值必须来自数据库中的序列。我如何更新实体的值? 提前致谢。 最佳答案 JPA 定义 @GenerateValue 仅适用于 PK 字段。
现代数据库支持自增能力吗?那么@Generatevalue 的目的是什么?看起来我们正在通过这种方式替换数据库功能。 最佳答案 将id标记为自动递增。当我说“标记它”时,我的意思是:“嘿 SQL!此列
我有一个带有 @GenerateValue() 的实体。我知道有不同的一代类型。我的问题是:当我创建实体的新实例时,是否有生成 ID 的生成类型?我需要对象的 id 来创建另一个 id 为 FK 的对
我想要做的是使用自动生成的 id 添加(POST)资源。我添加了注释,我的模型如下所示 @Id @GeneratedValue(strategy = GenerationType.AUTO) priv
我想创建一个带有前缀“CID_00001”的序列(示例): @Id @GeneratedValue(strategy=GenerationType.SEQUENCE) private String
我在使用 Hibernate 时遇到问题,无法弄清楚我做错了什么。我有一个简单的表格: CREATE TABLE users ( id BIGINT NOT NULL GENERATED AL
在初始化我的对象时,我似乎找不到任何有关如何使用 GenerationValue 注释的文档。 这是我的对象类的 id 字段,我还遗漏了另外两个字段 @Id @GeneratedValue(strat
我正在使用 JPA 在项目中创建一个类,并且我想使用 JPA 标签将该类映射到数据库中,但在这部分中出现错误: @Entity @Table(name= "SIGAC_TIPUS_VALORACIO"
在我的实体中,有一个名为 id 的字段,标有注释@Id(我手动设置),并且知道我想知道,是否有可能自动生成唯一 ID(使用 @GenerateValue),但我也想手动设置 ID,未设置时应自动生成。
我正在使用 MySQL/JPA,即使在提交后,持久实体上自动生成的 ID 也不会变得可用。这是发生这种情况的代码: synchronized (em.getTransaction()) { w
我的应用程序使用 DB2。创建数据库后我运行一些插入脚本。该插入脚本会在表中生成记录,并在插入脚本中给出 id。 假设 abc 表插入脚本创建一条 id = 3 的记录。由于 id 设置为在 hibe
我的要求是让 hibernate 获取现有表中已有的最新 PI 值,并通过将最大 PI 值增加 1 来添加新记录。 下面是我的实体类实现 @Entity public class User {
我想用自动生成(自动增量,最后一个数字+ 1)创建一个唯一的字段“数字”。但它不是一个 id 字段。我怎样才能达到这个目标? @GenerateValue 不起作用。仅生成了 id。我的代码不起作用。
我有一个 hibernate 实体父类(super class): @MappedSuperclass public abstract class Pojo_Entity_SuperClass {
我想实现自己的策略来为表中的新行生成主键,例如我希望主机的 id 172.24.85.20 将是 8520。 我可以以某种方式扩展@GenelatedValue注释吗?您会推荐哪种方法? 最佳答案
我是 Spring 新手,我想为成员(member)保存个人资料图片。我正在使用 lombok 和 JPA。 @Data @Entity public class Member { priva
我什么时候才能可靠地知道新创建实体的 id 字段用 @GenerateValue 注释已由持久性提供程序设置? JPA 规范对此并不是很具体。我见过类似的问题,但他们得到不同且令人困惑的答案。我知道一
那么自动生成函数“@GenerateValue(strategy = GenerationType.AUTO)”到底是如何工作的呢? 我是 Hibernate 的新手,并且继承了一个广泛使用的项目。
我正在尝试将对象持久保存到数据库中。不断收到“列 ID 无法接受空值错误”。我的对象如下所示: @Entity public class TestTable { @Id @Ge
我是一名优秀的程序员,十分优秀!