Насколько мне известно, отношения между сущностями должны быть явно отображены.Из спецификации JPA 1.0 (жирным шрифтом является мое):
2.1.7 Отношения между сущностями
Отношения между сущностями могут быть один-к-одному, один-ко-многим, многие-многие.один или много ко многим.Отношения полиморфны.
Если существует связь между двумя сущностями, к соответствующему постоянному свойству или полю ссылочной сущности должна быть применена одна из следующих аннотаций моделирования отношений : OneToOne
, OneToMany
, ManyToOne
, ManyToMany
.Для ассоциаций, которые не указывают целевой тип (например, где универсальные типы Java не используются для коллекций), необходимо указать сущность, которая является целью отношения.
(...)
И это не изменилось в JPA 2.0.
Таким образом, я комментирую отношения между сущностями.И AFAIK, Hibernate действительно будет жаловаться на неспособность сохранять сложный тип, когда не делает этого.
Но если кто-то не может показать мне соответствующую часть спецификации, я считаю поведение правильным.
Ссылки
- Спецификация JPA 1.0
- Раздел 2.1.7 «Взаимоотношения сущностей»
- Спецификация JPA 2.0
- Раздел 2.9 «Взаимоотношения сущностей»