java - Hibernate jpa子对象不保存

标签 java mysql spring hibernate jpa

我是 Spring 中 Hibernate 和 JPA 的新手,所以这可能是初学者的错误。我在持久化对象及其关联时遇到问题。

例如:

Dog dog = new Dog();
Breed breed = dao.getBreedById(1); (gets persistent object)

dog.setName("Pluto");
dog.setBreed(breed);

save(dog);

狗和所有字段都保存,但品种协会不保存在数据库中。我没有收到任何错误。它只是不保存。有人知道我做错了什么吗?

我将这个问题追溯到一个已经存在的注释……这让我事后自责。 -.-

我有:

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "breed_id", insertable = false, updatable = false)
private Breed breed;

叹息。删除 insertable 和 updatable 子句解决了这个问题。

最佳答案

您将狗保存到数据库中。如果你想要养狗,你也应该手动设置它。 JPA中没有自相关

Dog dog = new Dog();
Breed breed = dao.getBreedById(1); (gets persistent object)

dog.setName("Pluto");
dog.setBreed(breed);
breed.getDogCollection.add(dog);//you have to maintain relationship manually

save(dog);

关于java - Hibernate jpa子对象不保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26718078/

相关文章:

java - Quartz Scheduler - OC4J 的多个进程 ID 运行同一实例,每个进程 ID 都得到调度

spring - 如何在 Spring 应用程序中拥有每个线程但可重用的对象 (PubNub)?

java - 为什么在加入后选择在 java spark 数据帧中引发异常?

java - Hibernate:带有继承的 NaturalId

MYSQL 创建函数 - 获取 : Not allowed to return a result set from a function

php - 仅在部分 PHP 网站上使用 memcached

php - 如何在多条记录插入中获取最后插入的id?

java - R.Java 未显示

java - 在 Java 中如何将 "space and dot"替换为 "dot"?

spring - 是否可以使用 spring 重定向 url