如何使用JPAEclipseLink与连接表建立多对多关系

如何使用JPAEclipseLink与连接表建立多对多关系,第1张

如何使用JPA / EclipseLink与连接表建立多对多关系

首先,正如Mike Cornell所建议的那样,EmbeddedId / Class可能是更易于使用的选择。尽管如此,要回答您的问题和更正的代码

@IdClass(QueueItemPK.class)@Entity@Table(name="queue")public class QueueItem{       @Id       @ManyToOne(optional=false)       @PrimaryKeyJoinColumn(name="movieID")       private Movie movie;       @Id       @ManyToOne(optional=false)       @PrimaryKeyJoinColumn(name="userID")       private User user;       @Basic       private String listOrder;       ...Getters/Setters...}public class QueueItemPK implements Serializable{       private static final long serialVersionUID = 1L;       @Id       @Column(name="movieID")       private Integer movie;       @Id       @Column(name="userID")       private Integer user;       ...Getters/Setter...       public int hashCode()       {return (movie.getMovieID() + "|" + user.getUserID()).hashCode();       }       public boolean equals(Object obj)       {if (obj == this) return true;if (obj == null) return false;if (!(obj instanceof QueueItemPK)) return false;QueueItemPK pk = (QueueItemPK) obj;return pk.movie == movie     && pk.user == user;       }}

如您所见,它们必须具有必须匹配的ID的类型。不是很漂亮,但是可以工作。我建议对您的Set使用泛型;使ist更易于阅读,代码更安全。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5430448.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存