3 回答

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

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

TA貢獻1995條經驗 獲得超2個贊
我建議創建第三個表,并為您的表建立關系
@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
);
添加回答
舉報