jeecg隨筆 -- 實體關聯屬性的設計

在jeecg 裏 ,是根據數據庫生成實體的,很多關聯關係需要自己進行進一步整理才能滿足我們的業務需求

例如外鍵關係

由於很多時候,我們的一個表關聯的外鍵表會超過兩個甚至達到10個
這樣無法使用 JeecgOneToMainUtil 進行生成關聯關係
因此,只能選擇 單表模型進行生成
然後自行維護 外鍵關係

這個關係的維護還是相對簡單的.


@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name ="FK_*************")


即可滿足大部分需要
但是 由於在 addWhere 裏常用的

void com.util.dbcommon.SearchSqlGenerateUtil.createSearchParamsHql(StringBuffer hqlbf, List<Object> values, Object searchObj)


自動生成查詢條件HQL 模糊查詢 【只對Integer類型和String類型的字段自動生成查詢條件】


只能是對 String 和 Integer 進行自動生成
所以使用對象形式 的 查詢是無效的 [color=red](e.g: object.obid)[/color]

我解決這個問題的一個方法是:
在 entity 裏進行雙重數據庫字段的 匹配

例如

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name ="FK_****")
public ****Entity get****Entity(){}



再此基礎上加入一個字符串屬性

private String fk****Entity;

@Column(name = "FK_****",insertable=false,updatable=false)
public String getFk****Entity(){}



兩個@JoinColumn 和 @Column 都是使用同一個 數據庫字段進行映射
而 fk 開頭的 是設置爲 不寫入,不更新.
這樣在 pageModel 裏 只需要加入這個 fk_****的外鍵就可以使用自動匹配查詢來獲取數據

而不影響原來的對象關係
發佈了63 篇原創文章 · 獲贊 0 · 訪問量 7085
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章