Я работаю над обновлением приложения 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?