我是 Hibernate 和 MySQL 的新手,我有兩個表,如OFFER_TABLE和OFFER_LIKES_DISLIKESOFFER_TABLE 列OFR_ID(PK)OFR_MSGOFFER_LIKES_DISLIKES 列OFFER_LIKES_DISLIKES_IDOFR_ID(FK)LIKEDISLIKE我想映射OFFER_TABLE和OFFER_LIKES_DISLIKES,通過OFFER_TABLE訪問OFFER_LIKES_DISLIKES數據。我正在使用一對一映射,但它不起作用。Hibernate注解映射Java類優惠.class@Id@GeneratedValue@Column(name = "OFR_ID", length = 11, nullable = false)private int offer_id;@OneToOne@JoinColumn(name="OFR_ID", unique = true)@OneToOne(cascade = CascadeType.ALL)private MessageLikeDislikesDAO likeDislikes;喜歡不喜歡.class@GeneratedValue@Column(name="LIKES_DISLIKES_ID", length = 11, nullable = false)private int likes_dislikes_id;@Expose@Column(name="OFR_ID", length = 11, nullable = false)private int offer_id;當我獲得優惠數據時,想要與之關聯的“喜歡”和“不喜歡”數據。在 LikeDislike 表中,OFR_ID 是唯一的。我使用一對一。但是我沒有得到 LikeDislike 的數據。哪一種是獲取該數據的最佳方式。幫我解決這個問題。
1 回答

鴻蒙傳說
TA貢獻1865條經驗 獲得超7個贊
有很多問題:
您正在創建與 DAO 的關聯,而不是創建與實體的關聯
您將商品的 ID 存儲在 LikeDislike 實體中,而不是存儲與商品實體的關聯
您是說在 OFFER 表中有一個名為
OFR_ID
并引用 LikeDislike 實體的連接列。你不尊重 Java 命名約定
您正在同一字段上設置兩個 OneToOne 注釋
映射應該是:
提供:
@Id
@GeneratedValue
@Column(name = "OFR_ID", length = 11, nullable = false)
private Integer offerId;
@OneToOne(mappedBy = "offer", cascade = CascadeType.ALL)
private LikeDislike likeDislike;
喜歡不喜歡:
@GeneratedValue
@Column(name="LIKES_DISLIKES_ID", length = 11, nullable = false)
private Integer likeDislikeId;
@Expose
@OneToOne
@JoinColumn(name="OFR_ID", length = 11, nullable = false)
private Offer offer;
添加回答
舉報
0/150
提交
取消