2015-06-16 2 views
0

У меня есть случай, когда я сопоставляю две таблицы с одним и тем же объектом.Hibernate 4: установка значения по умолчанию, если запрос возвращает значение null

В этом объекте у меня есть строка с именем source, и я хочу иметь возможность установить имя таблицы или имя базы данных для этой переменной.

Любые идеи о том, как достичь этого?

Я подумал о том, чтобы перебирать свой список и вручную настраивать его, но это потенциально может растратить справедливый кусок времени.

Я ценю, что это несколько нечетный запрос, так что это может быть единственный способ, но я надеюсь на решение, которое отображает исходную переменную, когда hibernate отображает все остальное.

+0

_ «Я подумал об итерации по моему списку и вручную установил его». Не могли бы вы объяснить это решение более подробно? –

+0

, так что при реализации моего dao (у которого есть отдельный источник данных, чем у моего другого dao), я получаю свой список объектов через criteria.list(), а затем для (myObject current: myList) { current.setSource ("tableOne") ; } – user1383163

ответ

1

Если я правильно понял вашу проблему, то вашим решением может быть MappedSuperClass, в котором у вас должен быть абстрактный класс, который будет иметь общие поля двух таблиц, а затем вы расширите его до двух объектов, которые вы хотите, что укажет на две разные таблицы. Проверьте это link

0

Вы можете попытаться найти это с помощью Load listener или Interceptors. В приемнике/перехватчике вы можете проверить what the data source is и заполнить поле source соответственно.

0

В конце концов я закончил тем, что использовал формулу для сопоставления моей переменной с предложением выбора, которое было достаточным для того, что мне нужно.

Смежные вопросы