| Blog信息 |
|
blog名称: 日志总数:1304 评论数量:2242 留言数量:5 访问次数:7640858 建立时间:2006年5月29日 |

| |
|
[Hibernate]Hibernate里面实现复杂的查询 软件技术, 电脑与网络
lhwork 发表于 2006/6/28 11:17:07 |
由于hibernate对sql的二次封装,使部分复杂的查询语句不能被执行,可以用hibernate的session实现!
第一种:查询结果集 Session session = this.getSession(); List result = new ArrayList(); String strSql = "select buy.i***n,buy.bookname,buy.bookengname,count(*) as counum "; strSql = strSql + " from (select distinct usee.i***n from StuBasicInfo stu,Teachingmaterialuse usee ";
strSql = strSql + " where stu.identityid = usee.identityid and
stu.deptid = '" + banji + "' and usee |
|
|
[Hibernate]在hibernate中调用数据库特殊函数 软件技术, 电脑与网络
lhwork 发表于 2006/6/28 11:15:38 |
SQL: select max(substring(b.serialNumber,1,16)) as maxsn from book_book b where b.serialNumber like 'XXXXXXX%' for update
因为Hibernate是与数据库无关的,而SUBSTRING这个特殊函数是用于特殊数据库的。
解决办法:
1)命名查询
<sql-query name="com.chineseall.domain.bo.Book.findMaxSNByMask"> <return-scalar column="maxsn" type="string"/> <![CDATA[ select max(substring(b.serialNumber,1,16)) as maxsn from book_book b where b.serialNumber like :mask for up |
|
|
[Hibernate]Hibernate 调用带有复合主键的stored procedure 软件技术, 电脑与网络
lhwork 发表于 2006/6/28 11:12:58 |
Mapping file: <?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
<hibernate-mapping>
<!--
Created by the Middlegen Hibernate plugin 2.1
http://boss.bekk.no/boss/middlegen/
http://www.hibernate.org/
-->
<cla |
|
|
[Hibernate]Hibernate处理继承关系 软件技术, 电脑与网络
lhwork 发表于 2006/6/21 13:46:45 |
--角色继承关系表 create table SNOICS_RI ( RI_PARE_ROLEID VARCHAR2(32) not null, RI_CHILD_ROLEID VARCHAR2(32) not null, constraint PK_SNOICS_RI primary ke |
|
|
[Hibernate]Hibernate的查询方式 软件技术, 电脑与网络
lhwork 发表于 2006/6/15 11:26:22 |
小结Hibernate的查询方式
1. get() and load()
session.get(Clazz, id); session.load(Clazz, id);
说明: load()与get()的区别 请注意如果没有匹配的数据库记录,load()方法可能抛出
无法恢复的异常(unrecoverable exception)。
如果类的映射使用了代理(proxy),load()方法会返回一个未初始化的代理,直到你调用该代理的某方法时才会去访问数据库。
若你 |
|
|