Я решил использовать следующий обходной путь:
1) изменив one-to-one
in Contract
на <set...
(один-ко-многим) с lazy="true"
, access="field"
иinverse="false"
.Свойство с именем customers
вместо customer
2) в java-классе Contract
Я ввел новое свойство customers
, но без новых сеттеров и геттеров (поэтому нам нужен access="field"
.
3) изменил получатель старого свойства с одним значением, чтобы он возвращал первый элемент набора customers
, если и только если он не равен нулю и имеет размер = 1
4) изменил старый установщик, чтобы инициализировать новый HashSet и добавить к нему только customer
.
Таким образом, API-интерфейс объекта не изменился, и у меня есть иллюзия, что он отображается как один-к-одному;-).Тем не менее, я был бы признателен за другое решение