: 写 code 难免
: 我讲一下我的解决方案
: 首先,部门应该要有部门代号 (table的pk或是entity的@Id)
: 查询时可以把部门代号当条件
我的确是有seq(就像是部门代号),
但是我今天送进来的条件就是"名字",整个支线每个节点的名字
: 举个例来说,你去商店说你要HTC手机,店员会问你型号
: 不然谁晓得你要哪一只?
: 店员也可以把所有HTC手机拿出来给你选。
: 总之不可能心电感应就对了。
: 第二种是往上检查的 JPQL
: 假设 samsung 手机型号是这样悲惨的分类
: Samsung ─ galaxy ┬ S ─ 3
: └ Tab ─ 3
: 首先要查 "3",会查出两个
: 所以要把父节点当作查询条件
: select x from x where x.name=(?1) and x.parent=(?2)
: ?1 就给 String
: ?2 就给 Entity
: 这两种方式虽然不能说是完美解,但在逻辑上说得通。
: 有清楚的逻辑,就算要写code,应该也不会太笨吧?
: 如果真的觉得写code很麻烦,改scheme很麻烦的话
但是这样只能送两层,就像我举 Ea 的例子,
假设好死不好 Ea 跟 Df 上一层 都叫做同样的名字,
那这样还是会查出两笔~
*不过我在写入的时候已经控制好,树状结构不会有重复的情况,
也就是说最多最多到B那一层,名字就一定不一样,会分开了,
但B各支线向下或许有可能会有同样的节点名称
: 有 framework 是可以到这种程度的
: @Query("select x from x where x.name=(?1) and x.parent=(?2)")
: public MyEntity myAutoQuery(String name, MyEntity parent);
: 就写好了。
这个我在孤狗一下,感谢提供资讯<(_ _)>
: 另外,程式这东西一定要有规则绑住,不然会很麻烦
: 例如:"万一我部门代号也重复怎么办"
: 就不要让他重复阿,重复就代表资料有问题,要去找到为什么会重复
: 而不是去想 "代码重复后我要怎样做才能只输入代码就只查到一笔资料"
: 就像如果有人问说
: "我的电脑只要拔掉电源线就会关机,你能让我的电脑拔掉电源线不关机吗?"
: 我们要解的是不要让 user 脚贱一直踢到电源线,
: 而不是真的让电脑可以在无电底下运作