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

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

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

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

    雪山飛鵠

    溫馨提示:您的每一次轉載,體現(xià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 雪山飛鵠 閱讀(1984) 評論(0)  編輯  收藏 所屬分類: JPA
    主站蜘蛛池模板: 一区二区三区免费视频观看| 亚洲码欧美码一区二区三区| 久久er国产精品免费观看8| 久久青草亚洲AV无码麻豆| 一级做α爱过程免费视频| 亚洲成年人啊啊aa在线观看| 在线视频亚洲一区| www.亚洲色图| 二区久久国产乱子伦免费精品| 亚洲av无码国产精品色在线看不卡| 国产成人不卡亚洲精品91| 亚洲国产人成精品| 黄 色一级 成 人网站免费| 永久亚洲成a人片777777| a毛片在线看片免费| 亚洲视频2020| 在线a级毛片免费视频| 亚洲日本VA午夜在线影院| 国产一级高清视频免费看| 国产va免费观看| 久久99国产亚洲精品观看| 四虎免费影院ww4164h| 亚洲国产成人精品无码区花野真一| 国产小视频免费观看| 免费播放在线日本感人片| 久久久久亚洲AV无码网站| 18禁成年无码免费网站无遮挡| 亚洲a∨无码精品色午夜| 中文字幕亚洲综合久久菠萝蜜| 日本视频在线观看永久免费| 亚洲乱码一区av春药高潮| 四虎影库久免费视频| 在线人成免费视频69国产| 亚洲1区1区3区4区产品乱码芒果 | 成人免费视频国产| 中文字幕免费在线看线人动作大片| 亚洲国产二区三区久久| 午夜一区二区免费视频| 亚洲高清资源在线观看| 免费观看大片毛片| 久草福利资源网站免费|