나는 새로운 사용자 (entity1)를 만들려고하고 필요 클래스 변수로.무엇 최대 절전/JPA 주석은
내 사용자 개체를 만들 때이 사용자가 그룹 n의 구성원이 될 것이라고 말하고 싶습니다. (id (1,2,3,4,5,6 ...)로 연결된 미리 정의 된 사용자가 있습니다.) 각 그룹은 테이블의 일부 관련 데이터가 다음과 같이 내 사용자 개체를 만들 때마다
,..
User user = new User();
user.setActive(1);
user.setCrby("me");
user.setUsername("username");
user.setCrdate("2016-06-20 12:42:53.610");
user.setCrwsref("...");
user.setModby("...");
user.setModdate("2016-06-20 12:42:53.610");
user.setModswref("..");
user.setBackground("Y");
user.setPassword("password");
user.setFullName("me");
Group group = new Group();
group.setId(1);
Group group2 = new Group();
group2.setId(2);
Set<Group> sets = new HashSet<Group>();
sets.add(group);
sets.add(group2);
user.setGroups(sets);
userDao.addUser(user);
을 나는 특정 열이 null이 될 수 없음을 말해 오류가 점점 계속을 실제로 일이 원하는 것은 여기에 그룹 테이블에 삽입을 수행하는 것이 아니라 그룹 테이블의 행에 사용자를 연관시키는 것입니다. 수정되는 그룹 테이블의 열을 방지 할 수있는 특별한 방법이 있습니까? 내가 링크 테이블 사이의 매핑을 수정할 필요가 있다고 생각 -이 훨씬 POJO를가
@Entity
@Table(name = "group")
public class Group
{
@Id
@GeneratedValue
@Column(name = "id")
private int id;
지금
사용자
@Entity
@Table(name = "user")
public class User
{
@Id
@GeneratedValue
@Column(name = "id")
private int id;
@Column(name = "username")
private String username;
@Column(name = "password")
private String password;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable(name = "zmember", joinColumns = {@JoinColumn(name = "username")}, inverseJoinColumns = {@JoinColumn(name = "id")})
private Set<Group> groups = new HashSet<Group>(0);
회원 링크 테이블
@Entity
@Table(name = "member")
public class Member implements Serializable
{
@Id
@GeneratedValue
@Column(name = "id")
private int id;
@Id
@Column(name = "sgpid")
private int sgpid;
@Column(name = "username")
private String memberUsername;
그룹을 연결하는 방법입니다
링크 구성원 테이블에 연결이 없으므로 이상적으로 사용자가 그룹 집합이 아닌 구성원 개체 집합?
덕분에 -
당신이 최대 절전 모드 인 경우, 방법은 것 당신은'username' 문자열을' User'와'Group'에 정수'id'가 있습니까? 'Member'는 어떤 경우에도 둘 다와 관련이 없다는 것에주의하십시오. 적어도 Hibernate의 관점은 아닙니다. 당신은'User'가'Member'의 집합을 가지기를 원할 것입니다. (그것들은'User'에 대한 참조를 가지고 관계의 소유자입니다.)'Member'는'Group'과'ManyToOne' 관계를가집니다. . – Thomas
"멤버"는 다른 개체와 아무 관계가 없으므로 "링크 테이블"이 아닙니다! –