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

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

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

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

    雪山飛鵠

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

    BlogJava 首頁(yè) 新隨筆 聯(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;
        }
    }

    測(cè)試代碼
    @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) 評(píng)論(0)  編輯  收藏 所屬分類: JPA
    主站蜘蛛池模板: 亚洲国产精品人人做人人爽| 国产精品免费看久久久香蕉| 亚洲va成无码人在线观看| 亚洲成人中文字幕| 亚洲国产一二三精品无码| 亚洲色大成网站www永久一区| 亚洲国产午夜中文字幕精品黄网站 | 日韩亚洲精品福利| 永久久久免费浮力影院| 在线播放免费播放av片| 日韩免费一区二区三区| 国产性生交xxxxx免费| 四虎影视永久免费观看| 免费大学生国产在线观看p| 免费va在线观看| 精品国产亚洲一区二区在线观看| 亚洲欧洲国产成人综合在线观看 | 手机看片国产免费永久| 中文字幕免费视频精品一| 久久一区二区三区免费| 日批视频网址免费观看| 午夜免费啪视频在线观看 | 亚洲av无码专区在线电影| 精品韩国亚洲av无码不卡区 | 久久精品国产精品亚洲色婷婷| 亚洲AV乱码久久精品蜜桃| 亚洲综合久久1区2区3区 | 久久亚洲欧洲国产综合| 亚洲午夜国产精品无码老牛影视| 亚洲AV无码专区国产乱码电影 | 国产男女猛烈无遮档免费视频网站| 国产高清免费在线| 亚洲国模精品一区 | 成人看的午夜免费毛片| 免费一级国产生活片| 国产成人精品日本亚洲专区61| 亚洲精品无码国产| 亚洲天堂一区二区三区四区| 亚洲成AV人片高潮喷水| 国产免费AV片在线观看播放| 久久成人a毛片免费观看网站|