论坛首页 Java企业应用论坛

适用hibernate filter 的一个问题

浏览 3875 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2004-03-10  
我有如下代码
希望对一个chilren集合 做查询

q = s.createFilter(folder.getChildren();, "select Dog dog from this where xxxx);;


folder.getChildren() 返回一个Set, folder 是一个持久化的对象。
这个Set中有2种对象,Cat.class Dog.class

请问 我想查询一种狗狗 Dog.class 应该怎样做?


如果这样写
q = s.createFilter(folder.getChildren();, "select Dog dog from this where xxxx");;

则抛出异常 undefined alias Dog

如果这样写
q = s.createFilter(folder.getChildren();, "from Dog h where xxxx");;

则返回一个object对象 无法up casting,没搞清楚这个对象是什么东西

 s.createFilter(folder.getChildren();, "select h from Dog h where xxxx");;

这样返回结果集却跟folder.getChildren()无关 是全部的结果集。

请问 我想查询一种狗狗 Dog.class 应该怎样做?
   发表时间:2004-03-10  
我尝试 这样。。 结果说JdbcException: cannot execute query..

"select c from Cat c where (xxxx); and (h in this);
0 请登录后投票
   发表时间:2004-03-10  
试试from this where this.class=Cat
0 请登录后投票
   发表时间:2004-03-10  
yehs220 写道
试试from this where this.class=Cat

这句没有返回任何结果,我不明白为什么。
但是他没有抛出异常。

还有一个情况需要说明,我还需要做Dog的特性的条件查询
"from this where this.class=Dog and this.dogtype=腊肠"
执行上句,结果是Exception Animal dont have property dogtype

Animal is super class of Cat and Dog.
0 请登录后投票
   发表时间:2004-03-10  
你看看生成的sql吧
再看看文档中关于特殊属性"class"的那节

引用

还有一个情况需要说明,我还需要做Dog的特性的条件查询
"from this where this.class=Dog and this.dogtype=腊肠"
执行上句,结果是Exception Animal dont have property dogtype

Animal is super class of Cat and Dog.

这好像不行,因为"this"的类型是Animal。可以强制转换吗?不是很清楚
0 请登录后投票
   发表时间:2004-03-10  
xiexie  yehs220

我看到了class一项,估计是要写 Full Name of Class

我已经自己生成HQL了,不采用Fitler :)
估计Filter不是为了这种用途而设计的。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics