@Id 어노테이션은 필드나 속성(getter)에 지정하고 이것이 테이블의 주키가 된다.
@IdClass : 하나 이상의 @Id를 이용할 경우에 사용하며 식별자 클래스는 Serializable 인터페이스를 구현해야 하며, equals(), hashCode(), 기본 생성자가가 정의되어 있어야 하고, public class만 가능한데 식별자 클래스의 속성명과 엔티티의 속성명이 같아야 한다.
2. @Id 어노테이션은 필드나 속성(getter)에 지정하고 이것이 테
이블의 주키가 된다.
@IdClass : 하나 이상의 @Id를 이용할 경우에 사용하며 식별자
클래스는 Serializable 인터페이스를 구현해야 하며, equals(),
hashCode(), 기본 생성자가가 정의되어 있어야 하고, public
class만 가능한데 식별자 클래스의 속성명과 엔티티의 속성명이
같아야 한다.
2-2-1 식별자 매핑(@Id, @IdClass)
탑크리에듀교육센터 http://www.topcredu.co.kr/
3. public class UserPK implements Serializable {
String firstName;
String lastName;
public UserPK() { }
public boolean equals(Object other) {
if (other instanceof UserPK) {
final UserPK otherUserPK = (UserPK) other;
return (otherUserPK.firstName.equals(firstName) &&
otherUserPK.lastName.equals(lastName));
}
return false;
}
public int hashCode() { return super.hashCode(); }
}
2-2-1 식별자 매핑(@Id, @IdClass)
탑크리에듀교육센터 http://www.topcredu.co.kr/
4. @Entity
@IdClass(UserPK.class)
public class User {
public User() {}
@Id
protected String firstName;
@Id
protected String lastName;
2-2-1 식별자 매핑(@Id, @IdClass)
탑크리에듀교육센터 http://www.topcredu.co.kr/