hibernate 之1:N 配置方法

Role.java

package com.hw.dao;

import java.io.Serializable;

import java.util.Set;

public class Role implements Serializable {

private int rid ;

private String name;

private Set<Users> users;

//get set 方法

}

 

Role.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC

        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.hw.dao">

<class name="Role" table="ROLE">

<id name="rid">

<column name="RID"></column>

</id>

<property name="name">

<column name="NAME"></column>

</property>

<set name="users" cascade="all">

<key>

<column name="RID"></column>

</key>

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

</set>

</class>

</hibernate-mapping>   

 

Users.java

import java.io.Serializable;

public class Users implements Serializable{

 

private int id;

private String username;

private String password;

private Role role; //★

//get set 方法

}

 

Users.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC

        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"

        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.hw.dao">

<class name="Users" >

<id name="id">

<column name="ID"></column>

</id>

<property name="username">

<column name="USERNAME"></column>

</property>

<property name="password">

<column name="PASSWORD"></column>

</property>

 

<many-to-one name="role" class="Role" >

<column name="RID"></column>

</many-to-one>

</class>

</hibernate-mapping>

测试类

public class test {

public static void main(String[] args) {

Configuration cf = new Configuration().configure();

SessionFactory sf=cf.buildSessionFactory();

Session s=sf.openSession();

/**

s.beginTransaction();

Role role= new Role();

role.setRid(1);

role.setName("admins");

Set<Users> set= new HashSet<Users>();

Users user= new Users();

user.setId(1);

user.setUsername("jack");

user.setPassword("123");

set.add(user);

Users user1= new Users();

user1.setId(2);

user1.setUsername("jacks");

user1.setPassword("456");

set.add(user1);

role.setUsers(set);

s.save(role);

s.getTransaction().commit();*/

/**

String hql="from Role";

Query query=s.createQuery(hql);

List<Role> list=query.list();

for (Role role : list) {

System.out.println(role.getRid()+ " "+role.getName());

Set<Users> set =role.getUsers();

for (Users user : set) {

System.out.println(user.getId()+" "+user.getUsername()+" "+ user.getPassword()+" "+user.getRole().getRid());

}

}*/

String hql="from Users";

Query query= s.createQuery(hql);

List<Users> list=query.list();

for (Users user : list) {

System.out.println(user.getId()+" "+ user.getUsername()+" "+ user.getPassword() +" "+ user.getRole().getRid()+" "+ user.getRole().getName());

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值