2014-03-02 2 views
0

나는 Java 애플리케이션에서 Hibernate를 사용하는 데 익숙하다. ObjectA에서 ReferenceObjectB 로의 링크를 생성 할 때 다 대일 관계가 일반적이다. ReferenceObjectB는 다른 객체와 관계가없는 원자 클래스 일 수 있습니다. ReferenceObjectB는 다른 여러 객체에서 사용될 수 있습니다.iOS Core Data는 다 대일 관계를 지원합니까?

내 iOS 앱에서 데이터 모델에 핵심 데이터를 사용하고 있습니다. Hibernate의 Many-To-One처럼 관계를 맺고 싶기 때문에 ReferenceObjectB와 일대 다 관계를 갖고 Inverse Relationship없이 생성 된 ObjectA를 만들었습니다.

그러나 Xcode는 "잘못 구성된 속성 : TimeItem.extraData에 역이 있어야합니다"라는 경고 메시지를 표시합니다.이 경고는 Core Data에주의해야합니까, 아니면이 상황에서의 잡음입니까?

+0

다른 기사에 대한 링크를 공유하는 Thx. 역관계를 사용하려고합니다. 그러나, 나는 아직도 반전을 항상 요구하는 것이 이상하다고 생각한다. 어쩌면 내가 잘못 생각 - 개체의 메모리 그래프 모델, 대 데이터베이스 수준. 원래의 질문에서 말했듯이, Hibernate는 다 대일 (many-to-one)이라는 것을 지원하지만 코어 데이터를 볼 때 그 용어는 결코 언급되지 않습니다. – DaveDude

답변

0

경고는 이유가 있습니다. 관계의 역함수는 코어 데이터가 내부적으로 사용하여 개체를 추가하거나 (특히) 제거 할 때 데이터 저장소 내용을 관리합니다.

일반적으로 모든 관계에는 역함수가 있어야합니다.

+1

투표 결과가 확실하지 않은 이유를 잘 모르겠습니다. 이것이 정확하기 때문에 다시 투표했습니다. –

+0

반비례 관계는 SQLLite 데이터 저장소의 스키마에 어떤 영향을 줍니까? 그곳에도 존속해야하지 않습니까? – DaveDude

-2

오브젝트를 작성할 때 오브젝트를 올바르게 조작하거나 하나의 엔티티를 다른 엔티티의 특성으로 설정하는 데 양면 관계가 필요합니다. 핵심 데이터는 자동으로 일부 관계를 설정할 수 있으므로 수동으로 할 필요가 없습니다.

전체적으로 한면 관계를 사용하는 것이 항상 위험한 것은 아닙니다.

+0

한쪽 관계 사용은 ** 항상 ** 위험합니다. 조만간 데이터 손상이 발생할 것입니다. 항상 데이터 성능 문제가 발생합니다. –

관련 문제