浏览 7745 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-29
对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口。最简单的情况下,我们可以采用以下形式: java 代码
.list();这个查询指定了: SQL查询字符串 查询返回的实体 这里,结果集字段名被假设为与映射文件中指明的字段名相同。对于连接了多个表的查询,这就可能造成问题,因为可能在多个表中出现同样名字的字段。下面的方法就可以避免字段名重复的问题: java 代码
SQL查询语句,它带一个占位符,可以让Hibernate使用字段的别名. 查询返回的实体,和它的SQL表的别名. addEntity()方法将SQL表的别名和实体类联系起来,并且确定查询结果集的形态。 addJoin()方法可以被用于载入其他的实体和集合的关联. java 代码
java 代码
java 代码
java 代码
我觉得这种发式比较好。这样写出来的sql可以很整齐。我们的数据库使用的是oracle,不过按照这上面的写法发现sql语句有错误。后来拿到控制台执行也抱错。因为原来都用sqlserver,而sqlserver都是可以的。后来发现是表不能有别名改成这样就好了。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-03-21
hibernate3.1的文档上写得非常清楚,详见文档第16章,p179
|
|
返回顶楼 | |
发表时间:2007-04-29
我记得在3版本之后(不太清楚是不是3.0之后),
有一个带三个形参的createSQLQuery方法. 第一个参数是nativeSQL |
|
返回顶楼 | |
发表时间:2007-04-29
怎的按下TAB键就提交拉.晕
接上刚才的 第二个参数是String[] 第三个参数是Class[] 该方法可以很容易解决多个别名的问题. 比如:HQL:"select {cat.*}, {kitten.*} from cats cat join Kitten kitten on xxxxxx" 则 String[] str ={cat,kitten}; Class[] clazz = {Cats.class,kitten.class}; |
|
返回顶楼 | |