java 板


LINE

例如有某一张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://webptt.com/cn.aspx?n=bbs/java/M.1405534578.A.192.html ※ 编辑: NullLife (123.194.158.25), 07/17/2014 02:18:26
1F:推 LaPass:同样的问题 +1 其实这不只在java上会有这个问题..... 07/17 10:10
2F:→ LaPass:只要是资料库对上树状结构,应该都会有这个问题.... 07/17 10:10
主是要想问JPA或者有没有其他机制能做这件事情?
3F:推 yyc1217:把所有从root至leaf的路径都变成一份record可以吗? 07/17 10:19
4F:→ yyc1217:例如{Aa,Ba,Ca,Da,null,null}, {Aa,Ba,Ca,Db,Ea,Fa}, ... 07/17 10:20
5F:→ yyc1217:如果公司阶层不常变,就开固定数目的栏位就好 07/17 10:21
6F:→ yyc1217:如果常变动,就只存在一个栏位中,然後用分隔符号分开 07/17 10:22
7F:→ yyc1217:例如"Aa|Ba|Ca|Da", "Aa|Ba|Ca|Db|Ea|Fa"这样 用like搜寻 07/17 10:22
8F:→ yyc1217:不知道我有没有误解你的意思... 07/17 10:23
我举的例子量很小,实际我的运用并不是处部,大致上会像是我们电脑资料夹的样子, 而且可能会经常变更... 不过这也是一个方法,我考量一下系统状况是否适合做这件事,谢谢。
9F:→ swpoker:是讨论SQL还是讨论JAVA的爬资料结构阿 07/17 12:01
抱歉,可能没说的很清楚, 我想不太算讨论SQL耶,因为JPA都做掉大部分的事情了, 所以想请教有没有其他方法来爬这种资料结构? ※ 编辑: NullLife (125.227.157.211), 07/17/2014 12:22:20
10F:推 popcorny:其实每个用JPA久的都会遇到这个问题, JPA是个刚开始用 07/17 12:23
11F:→ popcorny:很爽,系统大了就很难掌握的架构。 07/17 12:24
12F:→ cyclone350:比较像是逻辑问题 07/17 12:25
13F:→ swpoker:要想的是~是哪里的总务部~还是无差别的总务部 07/17 13:30
14F:→ swpoker:照你的需求~应该是Ba下的总务部-Ea 07/17 13:31
15F:→ swpoker:所以应该要先去找Ba~然後再去Ba的子阶层去找到符合总务部 07/17 13:31
16F:→ swpoker:最主要还是总务部的定义为何?因为有的时候就是要上爬 07/17 13:33
17F:→ swpoker:但我习惯先去定义总务部的范围大概有哪里~在去决定实作 07/17 13:34
18F:→ swpoker:这个跟爬HTML的DOM没甚麽两样阿~ 07/17 13:35
19F:→ swpoker:不然你就在Entity里面弄几个索引阿~~这样就不用爬拉 07/17 13:37
20F:→ swpoker:在建立资料结构的时候~同时建立相对的索引 07/17 13:38
21F:→ swpoker:缺点是初始的比较耗资源~优点就是查询方便阿 07/17 13:39
22F:→ swpoker:但是资料有很多吗~不然几百笔资料递回一下很快拉 07/17 13:39
23F:推 kentyeh:虽然与JPA无关http://ppt.cc/dRGB,不然就放入LDAP内 07/17 15:03
24F:→ NullLife:感谢各位大大,已有方法解决,感恩<(_ _)> 07/17 18:51
25F:推 luoqr:JPA在多个JVM上跑 不知道有没有对db lock做处理的solution? 07/18 08:49







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl站内搜寻

TOP