最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jpa使用manyToOne(opntional=true)踩過的坑及解決

 更新時間:2021年10月18日 08:52:11   作者:Alieen Yin  
這篇文章主要介紹了jpa使用manyToOne(opntional=true)踩過的坑及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

jpa使用manyToOne(opntional=true)踩坑

@ManyToOne用于一對多的情況

(默認(rèn)情況下是懶加載的,沒必要去配置哦)如:一個account可以對應(yīng)多個accountPrivilege

@Entity
@Table(name = ACCOUNT_PRIVILEGE)
 
public class AccountPrivilege extends EntityId {
    // 賬號
    @ManyToOne(optional = false)
    @JoinColumn(name = ACCOUNT_PRIVILEGE_ACCOUNT, nullable = false)
    private Account account;
}

但是加上@ManyToOne(optional=false)出現(xiàn)了一些問題。

jpa將數(shù)據(jù)庫那個字段默認(rèn)置為0,在查詢時,數(shù)據(jù)庫找不到account.id=0的記錄!!

通過查閱一些資料,發(fā)現(xiàn):

optional屬性是定義該關(guān)聯(lián)類是否必須存在,值為false 時,關(guān)聯(lián)類雙方都必須存在,如果關(guān)系被維護(hù)端不存在,查詢的結(jié)果為null。

值為true 時, 關(guān)系被維護(hù)端可以不存在,查詢的結(jié)果仍然會返回關(guān)系維護(hù)端,在關(guān)系維護(hù)端中指向關(guān)系被維護(hù)端的屬性為null。optional屬性的默認(rèn)值是true。

optional 屬性實際上指定關(guān)聯(lián)類與被關(guān)聯(lián)類的join 查詢關(guān)系,如optional=false 時join 查詢關(guān)系為inner join, optional=true 時join 查詢關(guān)系為left join。

在我們不保證該字段關(guān)聯(lián)的記錄一定存在的情況下,使用@ManyToOne或@ManyToOne(optional=true)是比較方便的。

在我把@ManyToOne(optional=false)改為@ManyToOne后,jpa將數(shù)據(jù)庫那個字段默認(rèn)置為null。

@manytoone設(shè)置為optional=true不起作用

@manytoone

optional屬性的默認(rèn)值是true。

optional 屬性實際上指定關(guān)聯(lián)類與被關(guān)聯(lián)類的join 查詢關(guān)系,如optional=false 時join 查詢關(guān)系為inner join, optional=true 時join 查詢關(guān)系為left join。

但是實際運(yùn)行中,語句一直為innerjoin 設(shè)置為optional=true不起作用

原因

dc.createAlias("org", "org"); 本來寫在User user = UserUtils.getUser(); 下面,如果去掉則是正確的

public Page<Site> find(Page<Site> page, Site siteMain) {
DetachedCriteria dc = siteMainDao.createDetachedCriteria();
// 判斷是否是主站、超級管理員
User user = UserUtils.getUser();
return siteMainDao.find(page, dc);
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

十堰市| 荥阳市| 延川县| 班玛县| 秦安县| 蒲城县| 朔州市| 宜宾市| 清涧县| 尼勒克县| 镇远县| 体育| 沈阳市| 沙洋县| 即墨市| 嵩明县| 冕宁县| 长武县| 五寨县| 秀山| 奉新县| 西峡县| 孝感市| 高淳县| 双辽市| 井陉县| 望都县| 班玛县| 浦东新区| 晴隆县| 渝中区| 高唐县| 石柱| 临泉县| 渭南市| 乌兰察布市| 汤阴县| 马公市| 南城县| 连州市| 南投县|