@AttributeOverride가 있는 @Embeddable 항목의 JPA @ElementCollection
@Embeddable
public class Address {
@Column(name="str")
private String street;
@Column(name="nr")
private int number;
// getters/setters
}
그리고 Address @Embeddable은 사용자 항목에서 Address User.mainAddress와 List User.otherAddresses의 두 위치에 사용됩니다.
@Entity
public class User {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
@AttributeOverrides({
@AttributeOverride(
name="street",
column=@Column(name="main_user_address_street")),
@AttributeOverride(
name="number",
column=@Column(name="main_user_address_number"))
})
private Address mainAddress;
@ElementCollection
@CollectionTable(
name="user_addresses",
joinColumns=@JoinColumn(name="user_id"))
@AttributeOverrides({
@AttributeOverride(
name="street",
column=@Column(name="other_user_address_street")),
@AttributeOverride(
name="number",
column=@Column(name="other_user_address_number"))
})
private List<Address> otherAddresses;
// getters/setters
}
이렇게 하면 다음과 같이 테이블이 만들어집니다.
user(ID, main_user_address_street, main_user_address_number)
user_addresses(nr, str, user_id)
질문:.
@AttributeOverrides for User.otherAddresses가 무시되는 것 같습니다. user_addresses 테이블의 열 구조는 다음과 같습니다.
user_addresses(other_user_address_number, other_user_address_street, user_id)
제가 뭔가를 놓치고 있는 건가요, 아니면 이것이 예상되는 결과인가요?
종속성:
- 기관 eclipse지속성/ javax. persistence/2.2.0
- 기관 eclipse지속성/ eclipselink/ 2.7.1
org. mariadb. jdbc/ mariadb- java- 클라이언트/ 2.2.4
자바 버전: 1.8
언급URL : https://stackoverflow.com/questions/50413170/jpa-elementcollection-of-embeddable-items-with-attributeoverride
'programing' 카테고리의 다른 글
| JavaScript에서 프로토타입 상속 이해 (0) | 2023.10.26 |
|---|---|
| 반조류 판다 (0) | 2023.10.26 |
| 문자열 벡터에 대한 조인 연산자의 동등성은 무엇입니까? (0) | 2023.10.26 |
| PowerShell - 고유 값 필터링 (0) | 2023.10.26 |
| 라디오 버튼의 색상을 어떻게 변경합니까? (0) | 2023.10.26 |