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