2013-11-20 2 views
4

JPA 및 판별 자 값에 문제점이 있습니다.JPA 판별 자 값

@Entity 
@DiscriminatorValue("0") 
public class User extends UserModel { 

- - 값 = 0 1은 admin로 매핑해야하지만 난 단지 사용자에게

@Entity 
@Table(name="T_USERS") 
@Inheritance(strategy=InheritanceType.SINGLE_TABLE) 
@DiscriminatorColumn(name="usergroup", discriminatorType = DiscriminatorType.INTEGER) 
public abstract class UserModel implements Serializable { 

@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY) 
@Column(name="T_USERS_PK") 
private int id; 
@Column(name="username") 
private String username; 
@Column(name="password") 
private String password; 
@Column(name="firstname") 
private String firstname; 
@Column(name="lastname") 
private String lastname; 
@Column(name="usergroup") 
private String usergroup; 

얻을 = A user 및 값으로 매핑해야

@Entity 
@DiscriminatorValue("1") 
public class Admin extends UserModel { 

답변

3

당신의 usergroup은 문자열이고 discriminatorType = DiscriminatorType.INTEGER를 설정합니다.

@Column(name="usergroup") 
private String usergroup; 

변경 사용자 그룹 유형이 정수하고 문자열 (테이블의 사용자 그룹 필드의 타입) 데이터베이스에있는 경우 다음 제거하는 discriminatorType = DiscriminatorType.INTEGER

@DiscriminatorColumn(name="usergroup") 

discriminatorType의 defalut은 문자열이기 때문이다.

+0

정수로 변경했고 int로 테스트했지만 동일한 문제가 있습니다. 데이터베이스에서 필드 유형이 int 인 경우 – Yakaryo

+0

데이터베이스의 필드 유형도 변경했다는 의미입니까? 귀하의 코드에서 사용자에게 제로 (0)를, 관리자에게 하나 (1)를 표시한다는 사실도 알고 있습니까? 원하는 것이 무엇입니까? – jdev

+0

정수로 변경하면 @DiscriminatorValue ("0")을 @DiscriminatorValue (0)로 변경하고 Admin의 경우 "1"을 1로 변경해야합니다. – jdev

관련 문제