例如有某一張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來處理, 但都一樣很麻煩,省不了工... 所以上來請教一下各版大有沒有其他比較方便方法能達到這個目的? 感恩<(_ _)>