3 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
嘗試指定聯(lián)接列:
@OneToOne
@JoinColumn(name = "username", referencedColumnName = "username")
private profile profile;
你真的不需要這里。@MapsId

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
不要忘記禁用JoinColumn的可插入和可更新
@OneToOne
@JoinColumn(name = "username", referencedColumnName = "username", updatable = false, insertable = false)
private profile profile;

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
我建議創(chuàng)建第三個(gè)表,并為您的表建立關(guān)系
@Entity
@Table(name = "M_USER")
public class User {
@OneToOne(fetch = FetchType.LAZY)
@JoinTable(
name = "user_profile",
joinColumns = @JoinColumn(name="user_id"),
inverseJoinColumns = @JoinColumn(name="profile_username")
)
private Profile profile;
UPDATE user_profile
SET user_id = (
SELECT id
FROM M_USER
);
UPDATE user_profile
SET profile_username = (
SELECT username
FROM M_USER
);
添加回答
舉報(bào)