Принудительное использование Hibernate для создания свойств «многие к одному», даже если значения отсутствуют - PullRequest
0 голосов
/ 07 апреля 2020

Я работаю над обновлением приложения Spring MVC с Hibernate 3 до Hibernate 5. Одним из побочных эффектов этого является то, что я вижу валидатор, вызываемый для класса, мы назовем его Foo в местах, которых раньше не было. Foo выглядит так:

public class Foo {
    // some properties
    private Bar bar;
    // getters and setters, etc.
}

Как видите, Foo имеет свойство типа Bar, которое выглядит следующим образом:

public class Bar {
    private String a;
    private String b;
}

В базе данных таблица для Foo имеет столбец для Bar.a и присоединяется к таблице Bar, которая содержит столбцы для Bar.a и Bar.b, которые связаны с Foo с помощью сопоставления "многие к одному", например это:

<hibernate-mapping>
    <class name="com.baz.Foo" schema="MY_SCHEMA" table="FOO">
        <!-- Some other mappings for columns... -->
        <many-to-one column="a" fetch="join" name="bar" class="com.baz.Bar" />
    </class>
</hibernate-mapping>

Важно отметить, что Foo.bar.a может быть нулевым в базе данных, поэтому не гарантируется, что значение будет найдено, когда Hibernate попытается получить Foo.bar.

У меня такой вопрос: как заставить Hibernate создать экземпляр Foo.bar с Bar объектом, который имеет пустые значения вместо того, чтобы оставить Foo.bar null?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...