powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Как задавать циклические связи в unitils dataset?
2 сообщений из 2, страница 1 из 1
Как задавать циклические связи в unitils dataset?
    #37953370
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Используется hibernate, и для тестирования - unitils.

Есть модель данных с циклической связью (Parent содержит ссылку на Child, а тот в свою очередь содержит ссылку на Parent):
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
@Entity
public class Parent {

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;
 

        @OneToOne
        @JoinColumn(name = "childId")
        private Child child;
        ...
}

@Entity
public class Child {

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;
 

        @OneToOne
        @JoinColumn(name = "parentId")
        private Parent parent;
        ...
}



Для тестирования данной модели в unitils есть следующий dataset:
Код: java
1.
2.
3.
4.
<dataset>
	<child id="1" parentid="1000"/>
	<parent id="1000" childid="1"/>
</dataset>



Так вот unitils не может сгенерировать базу из этого датасета, потому что он по-видимому генерирует сущности последовательно по мере продвижения по xml. Потому что выводит эксепшен, что не может найти foreign-ключ parentid=1000 для child id=1

Отключать поддержку foreign keys не хочется.
Как быть и что делать, чтобы база данных сгенерировалась?
...
Рейтинг: 0 / 0
Как задавать циклические связи в unitils dataset?
    #37953464
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дополню вопрос:

unitils базируется на dbunit, и, вероятно, эта проблема может быть связанна с ним.
unitils версии 3.3

Эксепшен при попытке генерации:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
org.unitils.core.UnitilsException: Error inserting test data from DbUnit dataset for method XXXX
	at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:156)
	at org.unitils.dbunit.DbUnitModule$DbUnitListener.beforeTestSetUp(DbUnitModule.java:557)
...
Caused by: org.unitils.core.UnitilsException: Error while executing DataSetLoadStrategy
	at org.unitils.dbunit.datasetloadstrategy.impl.BaseDataSetLoadStrategy.execute(BaseDataSetLoadStrategy.java:48)
	at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:230)
	at org.unitils.dbunit.DbUnitModule.insertDataSet(DbUnitModule.java:153)
	... 18 more
Caused by: java.sql.BatchUpdateException: integrity constraint violation: foreign key no parent; FKB9D38A2DB2CC245 table: PARENT
...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Как задавать циклические связи в unitils dataset?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]