Действительно ли возможно увеличить объем, удаляют от много-многих связь с HQL?

Используйте моноширинный шрифт как Lucida Console, , который идет с Windows. Если Вы сокращаете/вставляете из Visual Studio или чего-то, что поддерживает подсветку синтаксиса, можно часто сохранять цветовую схему маркера синтаксиса.

8
задан ireddick 29 July 2009 в 17:09
поделиться

2 ответа

Отвечая на ваш конкретный вопрос, нет, насколько мне известно, это невозможно с HQL.

Я думаю, вы здесь немного смешиваете SQL и HQL. В SQL вы действительно "удаляете" записи, и, конечно, спящий режим тоже это сделает. Однако Hibernate / HQL разработан с учетом объектно-ориентированного мышления, поэтому «удалить» в этом контексте означает, что вы удаляете объекты, а не ассоциации. Обычно вы делаете что-то вроде следующего:

Foo f = session.get(Foo.class, id);
f.getBars().clear();
session.merge(f);

Это извлекает объект по указанному вами идентификатору и удаляет все ассоциации Bar, очищая его коллекцию. Очевидно, чтобы это работало, вам необходимо сопоставить ассоциацию Foo-Bars в правильном направлении.

7
ответ дан 5 December 2019 в 20:18
поделиться

Удаление только ассоциаций с HQL невозможно. Однако вы можете сделать следующее:

A) Предполагая, что вы делаете это для одного Foo и ваш каскад настроен соответствующим образом, вы можете загрузить этот экземпляр Foo , очистив его коллекцию от баров и сохраните его.

B) Если вы пытаетесь очистить столбцов из нескольких Foos , вы можете сопоставить запрос SQL вместо HQL

1
ответ дан 5 December 2019 в 20:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: