<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://m.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks

    SQL
    create table Roles
    (
       id                   
    int not null auto_increment,
       name                 
    varchar(20),
       
    primary key (id)
    );

    create table Users
    (
       id                   
    int not null auto_increment,
       name                 
    varchar(20),
       
    primary key (id)
    );

    create table user_role
    (
       
    user_id              int not null,
       role_id              
    int not null,
       
    primary key (user_id, role_id)
    );

    alter table user_role add constraint FK_Reference_1 foreign key (user_id)
          
    references Users (id) on delete restrict on update restrict;

    alter table user_role add constraint FK_Reference_2 foreign key (role_id)
          
    references Roles (id) on delete restrict on update restrict;

    Role.java
    package com.many2many.bean;

    import java.util.Set;

    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.JoinTable;
    import javax.persistence.ManyToMany;
    import javax.persistence.Table;

    @Entity
    @Table(name
    ="roles",catalog="JPA_Many2Many")
    public class Role {
        
        
    private int id;
        
    private String name;
        
    private Set<User> users;
        @Id
        @Column(name
    ="id")
        @GeneratedValue(strategy
    =GenerationType.AUTO)
        
    public int getId() {
            
    return id;
        }
        
    public void setId(int id) {
            
    this.id = id;
        }
        @Column(name
    ="name")
        
    public String getName() {
            
    return name;
        }
        
    public void setName(String name) {
            
    this.name = name;
        }
        @ManyToMany(cascade
    =CascadeType.PERSIST)
        @JoinTable(
                name
    ="user_role",
                joinColumns
    =@JoinColumn(name="role_id"),
                inverseJoinColumns
    =@JoinColumn(name="user_id")
        )
        
    public Set<User> getUsers() {
            
    return users;
        }
        
    public void setUsers(Set<User> users) {
            
    this.users = users;
        }
        
    }

    User.java
    package com.many2many.bean;

    import java.util.Set;

    import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.ManyToMany;
    import javax.persistence.Table;

    @Entity
    @Table(name
    ="users",catalog="JPA_Many2Many")
    public class User {
        
        
    private int id;
        
    private String name;
        
    private Set<Role> roles;
        @Id
        @Column(name
    ="id")
        @GeneratedValue(strategy
    =GenerationType.AUTO)
        
    public int getId() {
            
    return id;
        }
        
    public void setId(int id) {
            
    this.id = id;
        }
        @Column(name
    ="name")
        
    public String getName() {
            
    return name;
        }
        
    public void setName(String name) {
            
    this.name = name;
        }
        @ManyToMany(mappedBy
    ="users",cascade=CascadeType.REFRESH)
        
    public Set<Role> getRoles() {
            
    return roles;
        }
        
    public void setRoles(Set<Role> roles) {
            
    this.roles = roles;
        }
        
        
    }

    JPAUtil.java
    package com.many2many.util;

    import javax.persistence.EntityManager;
    import javax.persistence.EntityManagerFactory;
    import javax.persistence.Persistence;

    public class JPAUtil {
        
        
    private static EntityManager entityManager;
        
    public static EntityManager getInstance(){
            
    if(entityManager!=null){
                
    return entityManager;
            }
    else{
                
    return makeInstance();
            }
        }
        
    private static synchronized EntityManager makeInstance() {
            
    if(entityManager==null){
                EntityManagerFactory entityManagerFactory
    =Persistence.createEntityManagerFactory("JPA_Many2ManyPU");
                
    return entityManagerFactory.createEntityManager();
            }
            
    return null;
        }
    }

    測試代碼
    @Test
        
    public void insert(){
            EntityManager entityManager
    =JPAUtil.getInstance();
            EntityTransaction entityTransaction
    =entityManager.getTransaction();
            
    try {
                entityTransaction.begin();
                
                User user
    =new User();
                user.setName(
    "張三");
                
                Role role
    =new Role();
                role.setName(
    "管理員");
                
                Set
    <User> users=new HashSet<User>();
                users.add(user);
                
                role.setUsers(users);
                
                entityManager.persist(role);
                
                entityTransaction.commit();
            } 
    catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        @Test
        
    public void select(){
            EntityManager entityManager
    =JPAUtil.getInstance();
            Role role
    =entityManager.find(Role.class1);
            System.out.println(role.getName());
            Set
    <User> set=role.getUsers();
            
    for (Iterator<User> iterator = set.iterator(); iterator.hasNext();) {
                User user 
    = (User) iterator.next();
                System.out.println(user.getName());
            }
        }
    posted on 2010-10-18 20:44 雪山飛鵠 閱讀(1977) 評論(0)  編輯  收藏 所屬分類: JPA
    主站蜘蛛池模板: 精品无码一区二区三区亚洲桃色 | 国产成人免费午夜在线观看| 亚洲精品无码久久久久AV麻豆| 亚洲高清国产拍精品熟女| 色婷婷7777免费视频在线观看| 亚洲男女性高爱潮网站| 在线观看成人免费视频不卡| 亚洲一级在线观看| 蜜臀91精品国产免费观看| 亚洲精品无码久久久久久| 国产18禁黄网站免费观看| 色婷婷综合缴情综免费观看| 亚洲最大av无码网址| 免费无码一区二区三区蜜桃| 久久精品国产精品亚洲艾| 色片在线免费观看| 亚洲精品亚洲人成在线| 亚洲欧洲精品成人久久曰影片 | 国产va精品免费观看| 亚洲色欲色欱wwW在线| 免费日韩在线视频| 四虎影视久久久免费观看| 久久久亚洲精华液精华液精华液| 国产乱子伦精品免费无码专区| 精品亚洲456在线播放| 免费一本色道久久一区| 亚洲欧洲日韩国产一区二区三区| 在线观看视频免费国语| 一个人免费播放在线视频看片| 国产成人精品日本亚洲网站| 1000部拍拍拍18勿入免费视频下载 | 亚洲AV成人潮喷综合网| aa级女人大片喷水视频免费| 亚洲一区二区三区日本久久九| 精品熟女少妇AV免费观看| 日韩精品无码永久免费网站| 亚洲Av永久无码精品三区在线 | 最近免费字幕中文大全视频| 亚洲日韩AV一区二区三区中文| 亚洲精品一级无码中文字幕| 全部免费毛片在线播放|