第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

沒有外鍵的 JPA 一對(duì)一關(guān)聯(lián)總是失敗

沒有外鍵的 JPA 一對(duì)一關(guān)聯(lián)總是失敗

慕尼黑8549860 2022-09-07 17:57:42
我是JPA / Hibernate的新手,我正在創(chuàng)建一個(gè)簡單的連接,用于在不同的表中獲取一些數(shù)據(jù)讓我們看到如下:目的是根據(jù)M_USER.username列獲取M_PROFILE數(shù)據(jù),但很明顯,您會(huì)看到M_PROFILE表中沒有外鍵。我只是嘗試使用下面的代碼,但沒有結(jié)果,總是得到錯(cuò)誤。用戶實(shí)體類@Entity@Table(name = "M_USER")public class User {        @Id        @Column(name = "id")        private String uuid;        @Column(name = "email")        private String email;        @Column(name = "username")        private String username;        @OneToOne(fetch = FetchType.LAZY)        @MapsId("username")        private Profile profile;        public String getId() {            return id;        }        public void setId(String id) {            this.id = id;        }        public String getEmail() {            return email;        }        public void setEmail(String email) {            this.email = email;        }        public String getUsername() {            return username;        }        public void setUsername(String username) {            this.username = username;        }        public Profile getProfile() {            return profile;        }        public void setProfile(Profile profile) {            this.profile = profile;        }    }配置文件實(shí)體類@Entity@Table(name = "M_PROFILE")public class Profile {    private String username;    private String phone;    private String address;    @Id    @Column(name = "username", nullable = false)    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    @Basic    @Column(name = "phone")    public String getPhone() {        return phone;    }    public void setPhone(String phone) {        this.phone = phone;    }    @Basic    @Column(name = "address")    public String getAddress() {        return address;    }    public void setAddress(String address) {        this.address = address;    }}我在打電話時(shí)遇到不同的錯(cuò)誤User user = userRepository.findByUsername("aswzen");String phone = user.getProfile().getPhone();例如這個(gè)?!癠SER0_”。PROFILE_USERNAME“:標(biāo)識(shí)符無效需要幫助,提前致謝,注意:我沒有特權(quán)改變桌子。
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

嘗試指定聯(lián)接列:


@OneToOne

@JoinColumn(name = "username", referencedColumnName = "username")

private profile profile;

你真的不需要這里。@MapsId


查看完整回答
反對(duì) 回復(fù) 2022-09-07
?
牧羊人nacy

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊

不要忘記禁用JoinColumn的可插入和可更新


@OneToOne

@JoinColumn(name = "username", referencedColumnName = "username", updatable = false, insertable = false)

private profile profile;


查看完整回答
反對(duì) 回復(fù) 2022-09-07
?
拉風(fēng)的咖菲貓

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

);


查看完整回答
反對(duì) 回復(fù) 2022-09-07
  • 3 回答
  • 0 關(guān)注
  • 149 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)