我是新來的休眠,我有一個問題在堅持。在用戶類別中,它有first_name
,last_name
,gender
,address
等,我只希望Address
列字段在用戶的gender
僅等於Female
時忽略對錶的更新。我搜索了一下,發現我可以用@Transient
來忽略更新,但是我想要的是當某些條件滿足時忽略,如果沒有,我想包括Address
持久。休眠在某些情況下忽略字段
hibernate有可能嗎?
我是新來的休眠,我有一個問題在堅持。在用戶類別中,它有first_name
,last_name
,gender
,address
等,我只希望Address
列字段在用戶的gender
僅等於Female
時忽略對錶的更新。我搜索了一下,發現我可以用@Transient
來忽略更新,但是我想要的是當某些條件滿足時忽略,如果沒有,我想包括Address
持久。休眠在某些情況下忽略字段
hibernate有可能嗎?
忽略基於另一個字段的值的字段而不是Data Access Layer的響應度。它應該是Business Logic Layer的責任。
當您的條件得到滿足時,只需擦除舊地址的新地址,然後再繼續。
一個可能的方法是修改地址欄的setter
。像
public void setAddress(String address) { if(!this.gender.equals("female") { this.address = address; } }
所以,當你堅持下去的User
地址值不會有適合女性用戶使用。
感謝您的回答..那麼選擇怎麼樣?是否可以忽略條件選擇該字段? – Raymond
@Raymond我不明白爲什麼你會這樣做,但你仍然可以在選擇後將字段設置爲null,或者逐個選擇字段並使用這些字段手動構建對象。 – KeatsPeeks