我正在尝试设置我的实体以允许 pks。我的数据库由两个字段组成,
Dealer_detail_id pk
user_detail_id pk
两者都根据相应表中的 id 进行连接。
到目前为止我已经尝试过但没有成功。
@Embeddable
public class DealerUserPk implements Serializable {
private Integer dealerDetail;
private Integer userDetail;
经销商用户
@Embeddable
@Table(name = "dealer_user", schema = "account")
public class DealerUser implements Serializable {
@EmbeddedId
private DealerUserPk id;
@Id
@ManyToOne
@JoinColumn(name = "dealer_detail_id", referencedColumnName = "id")
private DealerDetail dealerDetail;
@Id
@ManyToOne
@JoinColumn(name = "user_detail_id", referencedColumnName = "id")
private UserDetail userDetail;
经销商详情
@Entity
@Table(name = "dealer_detail", schema = "account")
public class DealerDetail implements Serializable {
@Id
private Integer id;
用户详细信息
@Entity
@Table(name = "user_detail", schema = "account")
public class UserDetail implements Serializable {
@Id
private Integer id;
有人能发现我做错了什么吗?
这是对的:
@Embeddable
public class DealerUserPk implements Serializable {
private Integer dealerDetail;
private Integer userDetail;
- 但是您的 DealerUser 带有可嵌入注释,它应该是 @Entity
当您使用 @Table 注释时。
-
需要添加MapsId如下
@Entity
@Table(name = "dealer_user", schema = "account")
public class DealerUser implements Serializable {
@EmbeddedId
private DealerUserPk id;
@MapsId("dealerDetail")
@ManyToOne
@JoinColumn(name = "dealer_detail_id", referencedColumnName = "id")
private DealerDetail dealerDetail;
@Id
@MapsId("userDetail")
@JoinColumn(name = "user_detail_id", referencedColumnName = "id")
private UserDetail userDetail;
尝试一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)