<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://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫此文的意義!!!煩請您在轉(zhuǎn)載時注明出處http://www.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
    主站蜘蛛池模板: 日本在线高清免费爱做网站| 国产精品美女久久久免费 | 在线观着免费观看国产黄| 亚洲伊人久久大香线蕉啊| 免费成人福利视频| jlzzjlzz亚洲jzjzjz| 国产在线观看麻豆91精品免费 | 丰满少妇作爱视频免费观看| 亚洲第一区在线观看| 黄视频在线观看免费| 久久久青草青青亚洲国产免观| 久久精品私人影院免费看| 亚洲最新视频在线观看| 4399好看日本在线电影免费| 亚洲大成色www永久网址| 男女啪啪永久免费观看网站| 猫咪免费人成在线网站| 国产亚洲AV无码AV男人的天堂| 一级毛片aaaaaa免费看| 久久精品国产亚洲av麻豆蜜芽| 精品免费国产一区二区三区| 四虎影视久久久免费观看| 亚洲av一综合av一区| 日本妇人成熟免费中文字幕| 亚洲日韩国产一区二区三区在线 | 久久久久亚洲AV无码专区首| 8x网站免费入口在线观看| 亚洲av乱码一区二区三区香蕉| 免费看片A级毛片免费看| 全黄A免费一级毛片| 老司机亚洲精品影院无码| 女人18毛片a级毛片免费| 国产精品免费久久| 亚洲国产高清视频在线观看| 免费观看四虎精品国产永久| APP在线免费观看视频| 亚洲日本va在线观看| 狠狠亚洲婷婷综合色香五月排名| 又爽又黄无遮挡高清免费视频| 亚洲色www永久网站| 久久久久亚洲av毛片大|