더 나은 코드 구조와 재사용을 위해 일부 JPA Entity 내에서 @Embeddable Bean을 사용하고 있습니다. 내가 궁금해하는 것은 : 내가 만난 모든 예제는 @Embedded 객체를위한 setter와 getter를 제공한다는 것이다. 왜? 필자는 최종 필드로 사용하려고 노력했습니다. 즉, 작동하며, 우리의 경우에는 의미가 있습니다. 삽입 된 내용이 항상 존재하기 때문입니다. 거기에 내가 알지 못하는 몇 가지 단점이 있습니까?최종 특성으로 @Embedded beans?
예를 들어는 :
@Embeddable
public class Address {
// ...
}
@Entity
public class Person {
@Embedded
private Address address;
public void setAddress(Address address) {
this.address = address;
}
public Address getAddress() {
return address;
}
}
나는이 방법을 Person
쓰기 어떤 문제가 항상 Address
있을 때, 거기 :
@Entity
public class Person {
@Embedded
private final Address address = new Address();
public Address getAddress() {
return address;
}
}
이 밝혀 동안 일을 최종 제작하는 것으로, 적어도, 불쾌한 (@NeilStockton http://stackoverflow.com/a/39416643/21499의 답을 비교) JPA가 임베드 콩을 설정하는 양상도 있습니다 모든 필드가 null의 경우는 null가된다. http://stackoverflow.com/q/1324266/21499. 그래서 setter를 제거하고 Person.address를 getter에 생성하면 null이된다. –