当前位置: 首页 > 知识库问答 >
问题:

传递给持久化的Hibernate分离实体

锺星腾
2023-03-14

这个网站上没有一个类似的问题能够解决我的问题。

错误:org.hibernate.persistentobjectexception:传递给persist:healthcheckapi.model.checks的分离实体

@Entity
@Table(name="health")
public class Health {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String server;
    private String description;
    private String timestamp;
    private String offset;

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "health")
    private List<Checks> checks;

    public Health() {

    }

    public Health(int id, String server, String description, String timestamp, String offset, List<Checks> checks) {

        this.server = server;
        this.description = description;
        this.timestamp = timestamp;
        this.offset = offset;
        this.checks = checks;
    }
@Entity
@Table(name="checks")
public class Checks {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String name;
    private int status;

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "healthid", referencedColumnName="id")
    private Health health;

    public Checks() {

    }

    public Checks(String name, int status) {

        this.name = name;
        this.status = status;
    }

示例JSON健康对象:

{
    "server": "Server18",
    "description": "Fine",
    "timestamp": "00:02:30",
    "offset": "00:01:00",
    "checks": [
        {   "id": "1",
            "name": "cpu",
            "status": 90
        },
        {
             "id": "2",
            "name": "memory",
            "status": 88
        },
        {
             "id": "3",
            "name": "apacheService",
            "status": 76
        }
    ]
}

请注意,这两个对象的ID都是自动生成的,我认为这是问题的一部分。

共有1个答案

荀正谊
2023-03-14

使用cascadetype.merge而不是cascadetype.all

 类似资料:
  • 我正试图实现与hibernate的许多单向关系。问题是,当我试图向数据库中添加一些值时,我遇到了以下错误: 运行时发生异常。null:InvocationTargetException:未能执行ApplicationRunner:传递给persist:dnd35cg的分离实体。模型DND类;嵌套的异常是org。冬眠PersistentObjectException:传递给persist:dnd35

  • 问题内容: 我已经成功用hibernate写了我的第一个主要的孩子例子。几天后,我再次使用它并升级了一些库。不知道我做了什么,但是我再也无法使它运行了。有人可以帮助我找出返回以下错误消息的代码中的错误吗: hibernate映射: 编辑: InvoiceManager.java 发票.java InvoiceItem.java 编辑: 从客户端发送的JSON对象: 编辑: 一些详细信息: 我试图通

  • 我有一段运行时间很长的JPA+Hibernate代码,它试图在一个循环中将大量记录插入到DB中。 更奇怪的是,我可以用下面的代码在一次迭代中重现错误。“分离的实体...”第二次刷新时引发错误。那么这是否意味着第一次同花顺是没有操作的呢?

  • 我有一个实体,它已经持久化,并希望将其添加到新生成的父实体(尚未持久化)。如果我尝试持久化父级,我会得到错误“分离的实体传递到持久化:model.child”。我想我必须以某种方式为孩子调用“EntityManager.merge()”,而不是“EntityManager.persisted()”。但是我没有显式调用persisted。这由“cascade=cascadetype.all”注释处理

  • 问题内容: 我正在尝试使用Hibernate EntityManagerpersist方法将个人pojo插入mysql db, 得到这个例外 还有更多.. 我的Person.java类是, 然后是pojo的getter setter方法。 引发TitleType类的错误是“公共静态最终”标题类型定义提供程序, 我正在为人员设置标题类型类, 不可能将公共静态最终类型定义的类传递给Hibernate?

  • 问题内容: 结合使用JPA和Hibernate,运行以下代码时出现异常。第一次运行它时,一切正常,数据已插入数据库中。第二次,当应更新数据时,它失败: boutiqueDao.persist()只需调用EntityManager.persist()方法。 这是我的精品班: 最后,我的堆栈跟踪: 我正在Tomcat 7.0.32服务器上运行Java 7.0.11。 任何的想法? 问题答案: 用于全新