Быстрый NHibernate Many-Many

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

22
задан Rap 21 December 2010 в 03:33
поделиться

4 ответа

То, что это добавляет две записи на таблицу, похоже на Вас, отсутствуют обратный атрибут . И начиная с изменяются человек и начиная с группа, NHibernate сохраняет отношение дважды (однажды для каждого объекта). Обратный атрибут специально для предотвращения этого.

я не уверен в том, как добавить его в отображении в коде, но ссылка показывает, как сделать это в XML.

39
ответ дан Joel Verhagen 29 November 2019 в 04:27
поделиться

@Santiago я думаю, что Вы правы.

ответ мог бы просто быть то, что необходимо удалить одно из объявлений ManyToMany, смотря больше на Быстрый, похоже, что могло бы быть достаточно умно просто сделать это для Вас.

7
ответ дан Rap 29 November 2019 в 04:27
поделиться

Вы удостоверяетесь, что добавили Человека к Группам. Администратор? Необходимо сделать обе ссылки.

0
ответ дан emeryc 29 November 2019 в 04:27
поделиться

У Вас есть три права таблиц?

Люди, Группы и GroupAdministrators

, когда Вы добавляете к обеим сторонам, что добираетесь

Люди (с идентификатором p1) Группы (с идентификатором g1)

и в GroupAdministrators, у Вас есть два столбца и таблица, которая имеет

(p1, g1)

(p1, g1)

и Ваш код модульного теста, похож на следующее.

Context hibContext //Built here
Transaction hibTrans //build and start the transaction.

Person p1 = new Person()
Groups g1 = new Groups()

p1.getGroupsOwned().add(g1)
g1.getAdmins().add(p1)

hibTrans.commit();
hibContext.close();

И затем в Вашем тесте Вы делаете новый контекст и тест для наблюдения то, что находится в контексте, и Вы возвращаете правильную вещь, но Ваши таблицы все испачканы?

0
ответ дан emeryc 29 November 2019 в 04:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: