例如有某一张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来处理, 但都一样很麻烦,省不了工... 所以上来请教一下各版大有没有其他比较方便方法能达到这个目的? 感恩<(_ _)>