【发布时间】:2020-02-04 10:19:53
【问题描述】:
在我的 Spring Boot 应用程序中,我有两个模型。实际上试图实现ManyToMany 关系。
答:
@Entity
public class A {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Set<B> b=new HashSet<>();
public A() {
}
}
乙:
@Entity
public class B {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private Set<A> a=new HashSet<>();
public B() {
}
}
当我尝试编译时,这给了我错误,说: init 方法调用失败;嵌套异常是 javax.persistence.PersistenceException: [PersistenceUnit: default] Unable to build Hibernate SessionFactory;嵌套异常是 org.hibernate.MappingException:无法确定类型:java.util.Set,在表:a,列:[org.hibernate.mapping.Column(b)]
完整日志:here
【问题讨论】:
-
您是否定义了您的关系
ManyToOne或其他? id 对于B具有Set或A也没有意义,反之亦然。如果您的意思是ManyToMany关系,它就不会那样工作 -
我这两天就报错了,你能发布一个答案吗?是的,我正在尝试创建
ManyToMany关系@HoussemBadri -
如果你想实现
@ManyToMany关系,你在哪里实现的? -
如果要添加
ManyToMany关系,则需要添加一个中间表,该关系将更改为OneToMnay和ManyToOne。看看这个链接:baeldung.com/hibernate-many-to-many -
@HoussemBadri 我试过
@JoinTable(name ="...",joinColumns = @JoinColumn(name = "..."), inverseJoinColumns = @JoinColumn(name = "..."))...这有效,并创建了表格。 但问题是我不知道如何从该表中检索数据? 而且我不确定它们是否正在更新..
标签: spring spring-boot jpa spring-data-jpa