Здравствуйте, andreyzz, Вы писали:
A>Здравствуйте уважаемые форумчане.
A>В hibernate orm я новичок, потому запутался в 3х соснах. гугль особо не помог,видимо не те вопросы ему задаю.
A>потому расчитываю на помощь живых людей.
A>итак ситуация
A>вот куски кода( набирал руками, чтобы отразить основные моменты, которые я не понимаю)
A>...
A> @Access(value = AccessType.PROPERTY)
A> @ElementCollection(targetClass = ParentData.class)
A> @Cascade({org.hibernate.annotations.CascadeType.ALL})
A> @OneToMany(mappedBy = "parent",/*cascade = CascadeType.ALL,*/ fetch = FetchType.EAGER, orphanRemoval = true)
A> private Set<ParentData> parentDataList;
A> @Transient
A> private Actual3rdPartyParentDataHolder dataHolder;
A> ...
A> Set<ParentData> getParentDataList() {
A> for (ParentData c : dataHolder.getData()) {
A> parentDataList.add(ParentData.createData(this, c));
A> }
A> return parentDataList;
..
A>
Тут не понял, вы пытаетесь сохранить parentDataList, и в то же время в геттере сущности какая то логика, по вытаскиванию списка извне.
Дам вам совет, никакой логики в сущностях модели. Обычный гет и сет. Иначе намучаетесь с хибернетом, даже если на первый взгляд покажется что проблемм нет.
A>[/java]
A>теперь я пытаюсь все это завести.
A>делаю тест
A>A>@RunWith(SpringJUnit4ClassRunner.class)
A>@ActiveProfiles("dev")
A>@ContextConfiguration(
A> loader = AnnotationConfigContextLoader.class,
A> classes = {
A> PersistenceCOnfiguration.class
A> })
A>@Transactional
A>public class ParentTest {
...
A>
Поставте аннотацию @Transactional на реализации сервиса с propagation=REQUIRED, а так же на реализации дао с propagation=MANDATORY. Так при вызове сервиса будет создана новая транзакция если ее не было, а на дао она же подхватится, или будет кинуто исключение если транзакции нет (чтобы нельзя было вызывать дао не из веб сервисов). На юнит тесте вообще не уверн нужна ли она.
Это первые очевидные ошибки которые бросились в глаза. Возможно что-то еще есть.