我正在尝试创建两个实体之间具有多对多关系的实体。第一个实体是以PID作为主键的Person ,第二个是以SID作为主键的Serie。在数据库中有一个表TJV_5_SERIE_2_PERSON,它表示这些实体之间的多对多关系。问题是当我检索任何实体时,使用 @ManyToMany 注释的 Collection 始终为空。所以我假设我在代码中搞砸了一些东西,这解释了为什么我的多对多关系不起作用。我通过生成(在 Netbeans 9.0 中)“来自实体类的 Restful Web 服务”来检索这两个实体。这样,我可以使用这些服务成功检索所有属性,但带有 @ManyToMany 注释的 Collection 始终为空。任何想法为什么它不值得赞赏。这是第一次尝试,所以请原谅我的任何愚蠢错误。人物类:@Entity@Table(name = "TJV_5_PERSON")@XmlRootElementpublic class Person implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "PID") private Integer id; @Column(name = "PNAME") private String name; @ManyToMany() @JoinTable( name = "TJV_5_SERIE_2_PERSON", joinColumns = @JoinColumn(name = "PID", referencedColumnName = "PID"), inverseJoinColumns = @JoinColumn(name = "SID", referencedColumnName = "SID") ) // always empty private Collection<Serie> favourites = new ArrayList<Serie>(); public Person() { } public Person(Integer id, String name) { this.id = id; this.name = name; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @XmlTransient public Collection<Serie> getFavourites() { return favourites; } public void setFavourites(Collection<Serie> favourites) { this.favourites = favourites; } @Override public int hashCode() { int hash = 5; hash = 31 * hash + Objects.hashCode(this.id); return hash; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; }
2 回答
陪伴而非守候
TA贡献1757条经验 获得超8个赞
我不是 100% 确定,但由于 Serie.class 方法上方的 @XMLTransiet 注释,您可能无法检索任何结果
@XmlTransientpublic Collection<Person> getFans() { return fans;}尝试查看文档https://docs.oracle.com/javaee/6/api/javax/xml/bind/annotation/XmlTransient.html
慕后森
TA贡献1802条经验 获得超5个赞
另一个问题是两个对应的@ManyToMany 表之间的级联数据。这意味着您有交集,当您使用某种类型的级联时,数据会自动出现在此表中,但您需要发送 POST 请求。这意味着在您的服务类层中,您可以创建一个负责创建 Person 的方法并将一个 Serie 分配给这个作为外键的 Person 对象。关于级联的文章在这里 :) https://vladmihalcea.com/a-beginners-guide-to-jpa-and-hibernate-cascade-types/
添加回答
举报
0/150
提交
取消
