2012-09-11 4 views
0

2 개의 엔티티에 대해 많은 수의 realtionship을 만들었습니다. 그러나 매핑은 한쪽에서만 설정되었습니다. 예 : OrderMap 클래스 :나는 유창한 매핑을 nhibernate하는 초보자입니다. 관계의 한쪽에서만 HasManytoMany 매핑을 설정할 수 있습니까?

HasManyToMany(x => x.Fields) 
      .Access.CamelCaseField(Prefix.Underscore) 
      .ChildKeyColumn(ColumnNames.Field_Id) 
      .ParentKeyColumn(ColumnNames.Order_Id) 
      .LazyLoad() 
      .Cascade.All() 
      .Table(TableNames.Order_Fields_Join); 

그러나 다른면은 FieldMap 클래스입니다. 이 매핑을 지정하지 않았습니다. Nhibernate는 현재로는 throwin 오류이며, 이것이 원인인지 확실하지 않습니다. 이게 맞는지 알려주시겠습니까? 내 nhibernate 오류 : "동일한 식별자 값을 가진 다른 객체가 이미 세션과 연결되어 있습니다."

답변

0

ManyToMany를 양면에 매핑하는 것은 자연스럽지 않지만 게시 할 때 완벽합니다. 당신이 얻고있는 오류는 NHibernate가 던진 버그를 나타내는 동일한 식별자를 가진 두 개의 다른 객체를 저장/업데이트/삭제하고자하기 때문에 발생합니다. 예외를 throw하는 코드를 게시하십시오.

+0

해결책을 찾았습니다. 당신이 말했듯이 나는 알아 냈습니다. 많은 사람들을 많은 사람들에게 양면으로 매핑 할 필요가 없었습니다. 부모 하위 개체를 데이터베이스 리포지토리에서 가져 와서 부모 개체에 할당하는 대신 새 개체를 부모 개체에 추가하려고했기 때문에 오류가 발생했습니다. 이제는 효과가 있습니다. 감사 – 8GB

관련 문제