我是 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
提交
取消