jpa复习日志--表之间的关联
多对一(多个用户属于同一个组)
注:使用ManyToOne
那个多的表:
package com.bean;
import javax.persistence.*;
import java.io.Serializable;
@Entity
@Table(name = "t_groupuser")
public class GroupUser implements Serializable {
@Id
private int userid;
private String username;
// @Column(insertable=false,updatable=false)
// private int group_id;
//设置对象的关联的关系的时候,一定要用主键进行关联(重要)
//如果关联的不一样的话,改变掉关联的,使用JoinColumn来改变
//要移除进行关联的属性,不然会造成字段重复,
//或者在地段上面添加@Column(insertable=false,updatable=false)
@ManyToOne
@JoinColumn(name = "group_id")
private GroupBean bean;
public GroupBean getBean() {
return bean;
}
public void setBean(GroupBean bean) {
this.bean = bean;
}
public int getUserid() {
return userid;
}
public void setUserid(int userid) {
this.userid = userid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
}
那个一的表
package com.bean;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
@Entity
@Table(name = "t_group")
public class GroupBean implements Serializable {
@Id
private int groupid;
private String groupname;
public int getGroupid() {
return groupid;
}
public void setGroupid(int groupid) {
this.groupid = groupid;
}
public String getGroupname() {
return groupname;
}
public void setGroupname(String groupname) {
this.groupname = groupname;
}
}
测试代码:
package com.multi;
import com.bean.GroupBean;
import com.bean.GroupUser;
import java.util.List;
import com.util.JpaUtil;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.Query;
public class MultiOne {
public static void main(String[] args) {
//进行查询
MultiOne.ManyToOne();
//进行添加
MultiOne.save();
//进行删除
MultiOne.remove();
}
private static void remove() {
EntityManager entityManager = null;
EntityTransaction tx = null;
try {
entityManager = JpaUtil.getManager();
tx = entityManager.getTransaction();
tx.begin();
GroupUser groupUser=entityManager.find(GroupUser.class,1);
entityManager.remove(groupUser);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
JpaUtil.closeManager();
} catch (Exception e) {
e.printStackTrace();
}
}
System.exit(0);
}
private static void save() {
EntityManager entityManager = null;
EntityTransaction tx = null;
try {
entityManager = JpaUtil.getManager();
tx = entityManager.getTransaction();
tx.begin();
GroupBean groupBean=entityManager.find(GroupBean.class,1);
GroupUser bean=new GroupUser();
bean.setUsername("999999");
bean.setBean(groupBean);
entityManager.persist(bean);
tx.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
JpaUtil.closeManager();
} catch (Exception e) {
e.printStackTrace