Hibernate 利用配置文件配置HQL/SQL

Query.hbm.xml
<?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>  
 
     <query name="QueryUser">  
         <![CDATA[  
             FROM      User u  
             WHERE      u.userName = :userName  
         ]]>
          
     <sql-query name="SqlQueryUser">  
         <![CDATA[  
             SELECT  
                 {u.*}  
             FROM  
                 user u  
             WHERE  
                 u.user_name = :userName  
         ]]>
         <return alias="u" class="com.test.entity.User"/>  
     </sql-query>  
      
</hibernate-mapping>
hibernate.cfg.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-configuration PUBLIC
     "-//Hibernate/Hibernate Configuration DTD//EN"
     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
   
<hibernate-configuration>
     <session-factory>
         ...
         <mapping resource="User.hbm.xml"/>
       
         <mapping resource="query/Query.hbm.xml"/>
       
         ...
     </session-factory>
</hibernate-configuration>
Java Code:
String username = "...";
Session session = ...;
Query query = session.getNamedQuery("QueryUser");
//Query query = session.getNamedQuery("SqlQueryUser");
query.setString("name", username);
List userList = query.list();

猜你喜欢

转载自yupengcc.iteye.com/blog/1536467