hibernate关系映射(多对多)

Posted on 2008-08-21 12:04 H2O 阅读(475) 评论(0)  编辑  收藏 所属分类: hibernate
用户与角色---多对多

用户
package com.yz.pojos;

import java.util.HashSet;
import java.util.Set;

/**
 * Users generated by MyEclipse Persistence Tools
 
*/


public class Users implements java.io.Serializable {

    
// Fields

    
private Integer uid;

    
private String name;
    
//告诉用户所有的角色集合 ,一个用户可以属于多个角色
    private Set roles = new HashSet(0);

    
// Constructors

    
/** default constructor */
    
public Users() {
    }


    
/** minimal constructor */
    
public Users(String name) {
        
this.name = name;
    }


    
/** full constructor */
    
public Users(String name, Set roles) {
        
this.name = name;
        
this.roles = roles;
    }


    
// Property accessors

    
public Integer getUid() {
        
return this.uid;
    }


    
public void setUid(Integer uid) {
        
this.uid = uid;
    }


    
public String getName() {
        
return this.name;
    }


    
public void setName(String name) {
        
this.name = name;
    }


    
public Set getRoles() {
        
return roles;
    }


    
public void setRoles(Set roles) {
        
this.roles = roles;
    }




}

<?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"
>
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    
<class name="com.yz.pojos.Users" table="users" catalog="ssh">
        
<id name="uid" type="java.lang.Integer">
            
<column name="uid" />
            
<generator class="native" />
        
</id>
        
<property name="name" type="java.lang.String">
            
<column name="name" length="32" not-null="true" />
        
</property>
        
<!-- 中间表 -->
        
<set name="roles" inverse="false" table="userroles">
            
<key>
            
<!-- 通过中间表的uid找到Users -->
                
<column name="uid" />
            
</key>
            
<!-- 通过中间表的rid找到对应的Roles -->
            
<many-to-many class="com.yz.pojos.Roles" column="rid"></many-to-many>
        
</set>
    
</class>
</hibernate-mapping>

角色
package com.yz.pojos;

import java.util.HashSet;
import java.util.Set;

/**
 * Roles generated by MyEclipse Persistence Tools
 
*/


public class Roles implements java.io.Serializable {

    
// Fields

    
private Integer rid;

    
private String rname;
 
//一个角色可以被多个用户所关联,所以应该放用户对象
    private Set users = new HashSet(0);

    
// Constructors

    
/** default constructor */
    
public Roles() {
    }


    
/** minimal constructor */
    
public Roles(String rname) {
        
this.rname = rname;
    }


    
/** full constructor */
    
public Roles(String rname, Set users) {
        
this.rname = rname;
        
this.users = users;
    }


    
// Property accessors

    
public Integer getRid() {
        
return this.rid;
    }


    
public void setRid(Integer rid) {
        
this.rid = rid;
    }


    
public String getRname() {
        
return this.rname;
    }


    
public void setRname(String rname) {
        
this.rname = rname;
    }


    
public Set getUsers() {
        
return users;
    }


    
public void setUsers(Set users) {
        
this.users = users;
    }


    

}

<?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"
>
<!-- 
    Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
    
<class name="com.yz.pojos.Roles" table="roles" catalog="ssh">
        
<id name="rid" type="java.lang.Integer">
            
<column name="rid" />
            
<generator class="native" />
        
</id>
        
<property name="rname" type="java.lang.String">
            
<column name="rname" length="32" not-null="true" />
        
</property>
        
<set name="users" inverse="true" table="userroles">
            
<key>
                
<!-- 通过中间表的rid找到对应的角色 -->
                
<column name="rid" />
            
</key>
            
<!-- 通过中间标的uid找到对应的用户 -->
            
<many-to-many class="com.yz.pojos.Users" column="uid"></many-to-many>
        
</set>
    
</class>
</hibernate-mapping>

只有注册用户登录后才能发表评论。


网站导航:
 

posts - 0, comments - 21, trackbacks - 0, articles - 101

Copyright © H2O