이 있는데, 그 속성은 class B
입니다.최대 절전 모드 - 캐스케이드 옵션이있는 ManyToOne/OneToOne
모든 class A
에 대해 class B
이 하나만 있다는 것을 알고 있으므로 OneToOne
으로 매핑합니다. 실수로 동일한 class B
을 두 번째 에 추가하는 경우 은 모두 class B
을 참조합니다 (따라서 CascadeType.ALL
이 설정된 경우 해당 개체 중 하나를 삭제하면 다른 사람이 참조하는 주소가 제거됩니다). 이것은 모두 의미가 있습니다. 나는 데이터베이스에 class B
의 복수 (같은) 경우가있을 수 있음을 알고, 내가 원하는 경우
그러나,이를 사용하기 위해 class A
의 내가 ManyToOne
및 JPA로이 엔티티를 매핑 할 수 있습니다 생각이있는 경우 속성 지속/hibernate는 데이터가 이미 데이터베이스에 있는지 (로딩 한 후 평등을 사용하는지) 확인하기 위해 필요한 검사를 처리합니다. 이것이 사실이 아닌 것 같습니다.
ManyToOne
관계는 위의 OneToOne
과 정확히 같은 방식으로 작동 - 즉, 최대한 빨리, 너무 '클래스 B'개체가 삭제 가져옵니다 class B
객체를 참조하는 class A
개체 중 하나를 삭제로 (경우에도 다른 곳에서 참조). JPA/hibernate가 class B
개체를 삭제하기 전에 다른 개체에 의해 참조되지 않았는지 확인해야합니다 (CascadeType.ALL
도 설정 됨 - ManyToOne
관계로 표시되어 있음).
여기에 뭔가가 있습니까?
엔티티와 엔티티 관계를 어떻게 선언했는지 정확히 알 필요가 있습니다. –
우리가 더 나은 방법으로 당신을 도울 수 있도록 실제 사례를 줄 수 있습니까? –
물론입니다. 'Address'를 참조한'Person'. 나는'Address' 객체에서 평등을 행별로 동일하게 구현했으며 hashcode 메소드도 구현했습니다. 위와 다른 모든 것 ... – user2482461