[問題] 請問JPA如何做階層式查詢
例如有某一張Table存放一家公司底下的處部等關係,
Aa ┬ Ba ┬ Ca ┬ Da
├ Bb ├ Cb └ Db ┬ Ea ┬ Fa
│ └ Cc └ Eb ├ Fb
└ Bc ┬ Cd ┬ Dc └ Fc
│ └ Dd ┬ Ec
└ Ce ┬ De └ Ed
├ Df
└ Dg
目前table已經做出階層式的關係,
class MyEntity {
@Id
@...
private Integer seq;
@ManyToOne
@JoinColumn(name="parent_seq")
private MyEntity parent;
@OneToMany
@JoinTable(
name="link"
,joinColumns = @JoinColumn(
name = "parent_seq"
,referencedColumnName = "seq"
)
,inverseJoinColumns = @JoinColumn(
name = "child_seq"
,referencedColumnName = "seq"
)
)
private Set<MyEntity> children;
...
}
現在寫入、跟一般查詢都很正常,
可以取到我要的資料,然後可以看到上下的關係
但如果處部有名字一樣的時候,我想查到某個支線下的處部關係,要怎麼做?
例如如下圖的 Ea 跟 Df 同時都叫"總務部"好了
Aa ┬ Ba ┬ Ca ┬ Da
├ Bb ├ Cb └ Db ┬ Ea ┬ Fa
│ └ Cc └ Eb ├ Fb
└ Bc ┬ Cd ┬ Dc └ Fc
│ └ Dd ┬ Ec
└ Ce ┬ De └ Ed
├ Df
└ Dg
然後今天我想找Ea這個部,底下還有細分那些部,
但我所擁有的條件,就只有 Aa Ba Ca Db Ea 的名字,
要怎麼做才能找到我要 Ea ?
因為如果直接條件下"總務部",我會得到兩筆資料,
然後兩筆要往上查看是否為我要找的支線,
要不然就變成是全查出來,然後遞迴去找到我要的 Ea...
這兩個方法都滿笨的,而且要寫不少code...
小弟我這兩天想破頭了,也有想調整結構,或者多Table來處理,
但都一樣很麻煩,省不了工...
所以上來請教一下各版大有沒有其他比較方便方法能達到這個目的?
感恩<(_ _)>
--
為什麼不說話 為什麼打哈欠
今天的天氣這麼好 怎麼還愁眉苦著臉
讓我們喝咖啡 讓我們聽音樂
讓我們跨越了界線 讓我們自在的聊天 黃玠
讓我們每天心情都是星期天 生活一堆毛
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.194.158.25
※ 文章網址: http://www.ptt.cc/bbs/java/M.1405534578.A.192.html
※ 編輯: NullLife (123.194.158.25), 07/17/2014 02:18:26
推
07/17 10:10, , 1F
07/17 10:10, 1F
→
07/17 10:10, , 2F
07/17 10:10, 2F
主是要想問JPA或者有沒有其他機制能做這件事情?
推
07/17 10:19, , 3F
07/17 10:19, 3F
→
07/17 10:20, , 4F
07/17 10:20, 4F
→
07/17 10:21, , 5F
07/17 10:21, 5F
→
07/17 10:22, , 6F
07/17 10:22, 6F
→
07/17 10:22, , 7F
07/17 10:22, 7F
→
07/17 10:23, , 8F
07/17 10:23, 8F
我舉的例子量很小,實際我的運用並不是處部,大致上會像是我們電腦資料夾的樣子,
而且可能會經常變更...
不過這也是一個方法,我考量一下系統狀況是否適合做這件事,謝謝。
→
07/17 12:01, , 9F
07/17 12:01, 9F
抱歉,可能沒說的很清楚,
我想不太算討論SQL耶,因為JPA都做掉大部分的事情了,
所以想請教有沒有其他方法來爬這種資料結構?
※ 編輯: NullLife (125.227.157.211), 07/17/2014 12:22:20
推
07/17 12:23, , 10F
07/17 12:23, 10F
→
07/17 12:24, , 11F
07/17 12:24, 11F
→
07/17 12:25, , 12F
07/17 12:25, 12F
→
07/17 13:30, , 13F
07/17 13:30, 13F
→
07/17 13:31, , 14F
07/17 13:31, 14F
→
07/17 13:31, , 15F
07/17 13:31, 15F
→
07/17 13:33, , 16F
07/17 13:33, 16F
→
07/17 13:34, , 17F
07/17 13:34, 17F
→
07/17 13:35, , 18F
07/17 13:35, 18F
→
07/17 13:37, , 19F
07/17 13:37, 19F
→
07/17 13:38, , 20F
07/17 13:38, 20F
→
07/17 13:39, , 21F
07/17 13:39, 21F
→
07/17 13:39, , 22F
07/17 13:39, 22F
推
07/17 15:03, , 23F
07/17 15:03, 23F
→
07/17 18:51, , 24F
07/17 18:51, 24F
推
07/18 08:49, , 25F
07/18 08:49, 25F
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章