您的位置:首页 > 其它

hibernate 级联查询

2015-08-14 14:22 148 查看
在网上找了好多都没找到自己想要的后来,慢慢试才试出来,

看代码

public class Metters {

private Integer id; // id

private String mettercome;

private String metterdate;

private String mettersort;

private String mettername;

private String mettercontent;

private String metterstate;

private String mettercomment;

private String metterapprovaldate;

private User user;

public Metters(){

}

public Metters(String mettername, String metterstate, Integer id) {

this.mettername = mettername;

this.metterstate = metterstate;

this.id = id;

}

}

省略了get set 再来User代码

public class User {

private Integer id;

private String name;

private String account;

private String password;

private Set<Metters> metters = new HashSet<Metters>();

省略 get set

}

再来看各个的hbm.xml

<hibernate-mapping package="xxxxxxxxxx.domain">

<class name="Metters" table="metters">

<id name="id" type="java.lang.Integer">

<generator class="native" />

</id>

<property name="mettercome" length="50" type="java.lang.String" />

<property name="metterdate" length="20" type="java.lang.String"

not-null="true" />

<property name="mettersort" length="10" type="java.lang.String" />

<property name="mettername" length="240" type="java.lang.String"

not-null="true" />

<property name="mettercontent" length="255" type="java.lang.String"

not-null="true" />

<property name="metterstate" length="10" type="java.lang.String"/>

<property name="mettercomment" length="255" type="java.lang.String"/>

<property name="metterapprovaldate" length="20" type="java.lang.String"

not-null="true"></property>

<!-- user属性,本类与User的多对一关系 -->

<many-to-one name="user" class="User" column="userId" lazy="false"></many-to-one>

</class>

</hibernate-mapping>

<hibernate-mapping package="xxxxxxxxx.domain">

<class name="User" table="user">

<id name="id" type="java.lang.Integer">

<generator class="native" />

</id>

<property name="account" length="50" type="java.lang.String"

not-null="true" />

<property name="name" length="50" type="java.lang.String"

not-null="true" />

<property name="password" length="50" type="java.lang.String"

not-null="true" />

<!-- metters属性,本类与Metters的一对多关系 -->

<set name="metters" >

<key column="userId"></key>

<one-to-many class="Metters"/>

</set>

</class>

</hibernate-mapping>

这里有个多对一的关系 再来看查询语句,,,,根据用户的id来查询Metters里面的内容

String hql = "select new Metters(m.mettername,m.metterdate,m.id) from Metters as m where m.user.id=?";

Query query = this.getSession().createQuery(hql);

query.setParameter(0, userId);

List<Metters> metters = query.list();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: