0
APP_USER
ROLE_GROUP_ID
APP_USER_ID (PK)
USERNAME
ROLE_GROUP_ID
ROLE_GROUP
ROLE_GROUP_ID
ROLE_ID
....
ROLE_STATE (this table has composite PK)
ROLE_ID (PK)
STATE_ID (PK)
....
나는 OnetoOne ROLE_GROUP
APP_USER
에 대한 결과를 검색 할 수,하지만 ROLE_GROUP
oneToMany ROLE_STATE
가 비어 있습니다. 나는 org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean
을 사용하여 객체를 매핑합니다.
@Entity
@Table(name = "APP_USER")
public class AppUser implements Serializable{
private static final long serialVersionUID = 1L;
@Column(name = "ROLE_GROUP_ID")
private Integer roleGroupIdAppuser;
@Id
@Column(name="APP_USER_ID")
Integer appUserID;
@Column(name = "USERNAME")
private String userName;
@OneToOne(fetch=FetchType.EAGER)
@JoinColumn(name="ROLE_GROUP_ID",insertable=false,updatable=false)
private RoleGroup roleGroup;
@Entity
@Table(name = "ROLE_GROUP")
public class RoleGroup implements Serializable{
@Id
@Column(name="ROLE_GROUP_ID")
private Integer roleGroupId;
@Column(name="ROLE_ID")
private Integer roleID;
@Column(name="APP_GROUP_ID")
private Integer appGroupId;
@OneToMany(fetch=FetchType.EAGER)
@JoinColumn(name="ROLE_ID")
Set<RoleState> roleState;
public Integer getRoleGroupId() {
return roleGroupId;
}
@Entity
@Table(name = "ROLE_STATE")
public class RoleState implements Serializable {
private static final long serialVersionUID = 1L;
/*@Embeddable
public static class Pk implements Serializable {
@Column(name = "ROLE_ID", nullable = false, updatable = false)
private Integer roleId;
@Column(name = "STATE_ID", nullable = false, updatable = false)
private Integer stateId;
@Column(name = "TARGET_STATE_ID", nullable = false, updatable = false)
private int targetStateID;
}
@EmbeddedId
private Pk pk;*/
@Id
@Column(name = "ROLE_ID")
private Integer roleId;
@Id
@Basic(optional = true)
@Column(name = "STATE_ID")
private Integer stateId;
@Id
@Basic(optional = true)
@Column(name = "TARGET_STATE_ID")
private Integer targetStateID;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "STATE_ID",insertable=false,updatable=false)
State state;
AppUser appUser=(AppUser)currentSession().createQuery("from AppUser where userName=:userNamel").setParameter("userNamel", userNamel.toUpperCase()).list().get(0);
System.out.println(appUser.getRoleGroup().getRoleID());
Set<RoleState> roleState=appUser.getRoleGroup().getRoleState();
for(RoleState role:roleState){
System.out.println(role.getState().getName());
}
System.out.println(appUser.getUserName());
roleState 분명 내가 뭔가를 그리워 비어
는, 어떤 도움을 주시면 감사하겠습니다. 난, 당신은 역 쪽은 "mappedBy"를 누락 생각