论坛首页 Java版 Hibernate

请教: SELECT A1,A2,A3 FROM A, Ax is subclass of A

浏览 2229 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
时间:2003-10-20
如果 A 有三个以上 subclasses: A1, A2,A3...
我用 "from A" 可以得到他所有的子类,
可是如何在结果集分辨这些子类.

如果可以这样查询: " select A1,A2... from A", 那就很好理解和处理.
我试过,不成功,请教如何做.

不要告诉我:[code:1]select A1 from A1
select A2 from A2
...
select Ax from Ax
[/code:1]
   
时间:2003-10-20
[code:1]
List l=session.find("from A a");
//List l=session.find("from A a order by a.class");
for (Iterator iter = l.iterator(); iter.hasNext(); )
Object o=iter.next();
if(o instanceof A1){
//...
}else if(o instanceof A2){
//...
}else{
//...
}
}
[/code:1]
   
0 请登录后投票
时间:2003-10-20
我首先试的就是用instanceof,奇怪的是根本不起作用,应该是我用了proxy,不过我的subclass也设了proxy.
不用instanceof的另外一个原因是每次使用数据集时候都要判断,很麻烦,我还要另外创建List来保存不同的子类。难道不可以一次从结果集里取出各自子集忙?
   
0 请登录后投票
时间:2003-10-21
Session.find()或Query.list()是不会返回proxy的,iterator()才会,你用的是哪个?

引用

难道不可以一次从结果集里取出各自子集忙

好像不行,谁知道有这种方法吗(要不自己写一个)?
   
0 请登录后投票
时间:2003-10-21
我就是在用iterator.可否对当前表map一个新的class,这个class把这些subclass作为它的children?
   
0 请登录后投票
时间:2003-10-21
引用

可否对当前表map一个新的class,这个class把这些subclass作为它的children

不明白你的意思?
贴个例子。
   
0 请登录后投票
时间:2003-10-21
我原来是将表映射成一个类和它的子类,我的问题是可不可能将表映射成一个新的类,旧的类的子类分别是这个新类的成员,而且每个成员都是一个collection对象,那样的话,我处理起来就最理想不过了。
   
0 请登录后投票
论坛首页 Java版 Hibernate

跳转论坛:
JavaEye推荐