Указанные классы сущностей:критерии Hibernate, выбирая из объекта А где someId в B
class A { String name ... }
class B { @OneToOne A a = ... ; String gender; ... }
Я могу создать критерии Hibernate и запросить его и все его ассоциации.
Однако B вообще не ссылается на A. Он заселен по-отдельности, и я хотел бы сохранить его как таковой.
Есть ли способ выполнить спящий режим критерий запрос на A и сказать, где это также находится в отношении B или где он находится в отношении B, а какое-то поле в B - это и что?
Вот некоторые нерабочим код псевдо:
criteria(A.class).add(
Restrictions.eq("name", "something")
).createAlias(
B.class, "..."
).add(
Restrictions.eq("gender", "Female")
);
Примечание, я предпочел бы не иметь, чтобы создать коллекцию на А, содержащее B и используя addAll.
Я мог бы подумать над тем, чтобы добавить мертвую ссылку, имея в виду то, что никогда не предназначено для доступа или обновления, но необходимое для спящего режима, чтобы снять это. Это может быть что-то вроде того, что это поддерживается другой таблицей.
Великого. Я собираюсь проверить это. Но знаете ли вы, что DetachedCriteria можно использовать повторно и потокобезопасно? Могу ли я определить статический окончательный вариант и использовать в другом месте в потоковой среде? Например, запрос, который вы здесь делаете? – momomo
Извините, я понятия не имею – IntelliData
С другой стороны, все, что делает DetachedCriteria, это хранение инструкций для выполнения запроса без фактического выполнения чего-либо; впоследствии, когда вы выполняете запрос в контексте сеанса, вызывая отложенные критерии, вы выполняете его, как обычные критерии. Поэтому было бы целесообразно сказать, что если критерий является потокобезопасным, то это отделимый критерий и наоборот. – IntelliData