它是完全面向对象的查询语句,查询功能非常强大,具备继承、多态、关联等特性 。除了Java类与属性的名称外,查询语句对大小写并不敏感。
下面我们将以班级与学生进行HQL示例,所以我们先建立Student.java、Classes.java以及映射文件,代码如下:
Student.java:
public class Student { private int id; private String name; private Date createTime; private Classes classes; |
Classes.java:
public class Classes { private int id; private String name; private Set students; |
Student.hbm.xml:
<hibernate-mapping> <class name="hibernate.Student" table="t_student"> <id name="id"> <generator class="native"/> </id> <property name="name"/> <property name="createTime"/> <many-to-one name="classes" column="classesid"/> </class> </hibernate-mapping> |
Classes.hbm.xml:
<hibernate-mapping package="hibernate"> <class name="Classes" table="t_classes"> <id name="id"> <generator class="native"/> </id> <property name="name"/> <set name="students" inverse="true" cascade="all"> <key column="classesid"/> <one-to-many class="Student"/> </set> </class> </hibernate-mapping> |