我刚接触hibernate和mysql,我有两个类似于offer\u table和offer\u likes\u dislikes的表
提供表列
OFR_ID(PK)
OFR_MSG
提供“喜欢”或“不喜欢”列
OFFER_LIKES_DISLIKES_ID
OFR_ID(FK)
LIKE
DISLIKE
我想Mapoffer\u表和offer\u likes\u dislikes,通过offer\u表访问offer\u likes\u dislikes数据。我使用一对一Map,但它不工作。
hibernate注解Mapjava类
报价.等级
@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;
类
@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表中,r\u id是唯一的。我习惯了一对一。但我没有得到像这样的数据。哪一个是获取数据的最佳方法。帮我解决这个问题。
1条答案
按热度按时间9rbhqvlz1#
有很多问题:
您正在创建与dao的关联,而不是创建与实体的关联
您将要约的id存储在likedislike实体中,而不是存储与要约实体的关联
你是说有一个名为
OFR_ID
并引用offer表中类似的实体。您不尊重java命名约定
在同一个字段上设置了两个onetoone注解
Map应为:
报价:
比如:
相关文件