|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Здравствуйте! Пытаюсь из БД удалить записи соответствующие условию, с помощью запроса "createQuery" Hibernate: Код: java 1. 2. 3.
На что он мне отвечает, что нельзя делать запросы на удаление/обновление. авторjava.lang.IllegalArgumentException: Update/delete queries cannot be typed org.hibernate.internal.AbstractSharedSessionContract.resultClassChecking(AbstractSharedSessionContract.java:763) org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:746) org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:104) dao.PredictionLevelImplDao.dell(PredictionLevelImplDao.java:45) Как удалять тогда, если нужно удалить сразу много записей соответствующих условию? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 15:54 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir, пробовал делать так: Код: java 1. 2. 3.
Выдает исключение авторorg.hibernate.QueryException: Named parameter not bound : Оск001 org.hibernate.query.internal.QueryParameterBindingsImpl.verifyParametersBound(QueryParameterBindingsImpl.java:210) org.hibernate.query.internal.AbstractProducedQuery.beforeQuery(AbstractProducedQuery.java:1427) org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1606) dao.PredictionLevelImplDao.dell(PredictionLevelImplDao.java:47) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 16:16 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir, ещё пробовал такой вариант: Код: java 1. 2. 3.
авторjavax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not execute statement org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:154) org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181) org.hibernate.query.internal.AbstractProducedQuery.executeUpdate(AbstractProducedQuery.java:1617) dao.PredictionLevelImplDao.dell(PredictionLevelImplDao.java:47) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 16:31 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir, Сделайте пример из сети или книги. Что вы гадаете наобум? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 16:34 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir, вы одновременно методом тыка учитесь и запросы писать и Hibernate? ИМХО стоит метод тыка заменить на чтение документации. Если namePost - это поле в таблице Predictionlevelwater , то так: Код: java 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 16:37 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Дмитрий Мух Vlad__i__mir, вы одновременно методом тыка учитесь и запросы писать и Hibernate? ИМХО стоит метод тыка заменить на чтение документации. Если namePost - это поле в таблице Predictionlevelwater , то так: Код: java 1. 2. 3.
namePost - это свойство у объекта, который является значением поля в таблице 22154615 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 16:47 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, везде примеры проще, без условия с ссылкой на свойство объекта, хранящегося в таблицк ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 16:49 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir Дмитрий Мух Vlad__i__mir, вы одновременно методом тыка учитесь и запросы писать и Hibernate? ИМХО стоит метод тыка заменить на чтение документации. Если namePost - это поле в таблице Predictionlevelwater , то так: Код: java 1. 2. 3.
namePost - это свойство у объекта, который является значением поля в таблице 22154615 У вас объект является значением поля в таблице? Вы ничего не путаете? Можете дать описание таблицы, её назначение и сформулировать то, какие данные оттуда необходимо удалить. Тогда мы сначала попробуем написать соответсвующий SQL запрос, а потом уже вызвать его средствами Hibernate. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 17:21 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir, Если вы пишете запрос - то вы пишете его к базе данных. Которая знать не знает ни про какие объекты и поля. Это во первых. А во вторых - а зачем вы вообще этот запрос пишете? Может проще использовать методы репозитория? https://docs.spring.io/spring-data/jpa/docs/1.5.0.RELEASE/reference/html/jpa.repositories.html ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 17:25 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Дмитрий Мух, В таблице Predictionlevelwater есть поле - это поле FK, FK ссылается на таблицу Post, у которой есть поле namePost. Поэтому я в запросе и ссылался через точку, как бы обращаясь к полю объекта: автор"DELETE FROM Predictionlevelwater e WHERE postId.namePost=:namePost" ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 17:27 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir, Если FK, то это число. Если удаляете не по нему а имени то должен быть join. ОТЛАЖИВАЙТЕ ЗАПРОС В ПРОГЕ ДЛЯ БД. Без java. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 18:12 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir, 2. Если немного элементов то можно удалять в цикле по коллекции. Ведь орм и хибер все таки. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 18:14 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, Сделал так: 1) нашел объект postId 2) выбрал из таблицы все записи с данным объектом Код: java 1. 2. 3. 4.
3) с помощью цикла удаляю все объекты: Код: java 1.
Конечно с точки зрения оптимальности алгоритм желает лучшего, но работает ) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 18:20 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir, Есть рационально и есть оптимально. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 18:24 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir Дмитрий Мух, В таблице Predictionlevelwater есть поле - это поле FK, FK ссылается на таблицу Post, у которой есть поле namePost. Поэтому я в запросе и ссылался через точку, как бы обращаясь к полю объекта: автор"DELETE FROM Predictionlevelwater e WHERE postId.namePost=:namePost" Из первого сообщения вы уже поняли, что Hibernate не умеет использовать информацию о типе (Predictionlevelwater.class) для построения правильного запроса DELETE. То есть в вашем случае он ничего не знает о таблице Post и о том, что Predictionlevelwater на неё ссылается. И вам самому сначала надо написать правильный запрос DELETE и потом вызвать его в коде Java с нужными параметрами. Варианты: Код: sql 1.
Код: sql 1.
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 18:27 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir PetroNotC Sharp, Сделал так: 1) нашел объект postId 2) выбрал из таблицы все записи с данным объектом Код: java 1. 2. 3. 4.
3) с помощью цикла удаляю все объекты: Код: java 1.
Конечно с точки зрения оптимальности алгоритм желает лучшего, но работает ) Хорошо, что вы нашли решение. И всё же я бы на вашем месте подтянул знания по SQL и переписал без циклов, одним запросом. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 18:34 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Дмитрий Мух, спасибо! 1-ый и 2-ой вариант мне в принципе понятен, JOIN пользоваться умею Попробую ваш вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2020, 18:53 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Vlad__i__mir Конечно с точки зрения оптимальности алгоритм желает лучшего, но работает ) Да, у меня код типа такого и всё встаёт раком. Ява с гибернейтом уже где-то год в процессе выкидывания. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 07:00 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
crutchmaster Да, у меня код типа такого и всё встаёт раком. Ява с гибернейтом уже где-то год в процессе выкидывания. Из дотнетов порт хибера уже давно повыпилили, а в джаве смотрю процесс ещё идёт ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 07:59 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt, Неужели один EF остался. Странно. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 08:11 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt, Там томик такой хороший по хиберу, я так и не осилил. Шоб просто работало, надо изучить этот талмуд. Но это не факт. Да да, батхёрт неосилятора. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 09:34 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
PetroNotC Sharp hVostt, Неужели один EF остался. Странно. Почему же, ORM-ов хватает. Всяких разных. Просто для NHibernate в своё время альтернатив не было, затем их запилили в нужном количестве, а хибер оказался избыточно сложным и неповоротливым поделием. crutchmaster hVostt, Там томик такой хороший по хиберу, я так и не осилил. Шоб просто работало, надо изучить этот талмуд. Но это не факт. Да да, батхёрт неосилятора. Просто хибер это убер-вундервафля :) Видимо и джаве тож самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 13:02 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Главное чтоб из стека SpringData его убрали. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 13:19 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt, Дак дай хоть пару имен то. Мы не в курсе тут, что там за горизонтом, в Net уже нового. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 13:52 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
PetroNotC Sharp hVostt, Дак дай хоть пару имен то. Мы не в курсе тут, что там за горизонтом, в Net уже нового. EF Dapper PetaPoco LiteDB SqlSugar FreeSql ServiceStack.OrmLite Insight.Database RepoDb MicroLite ... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 14:21 |
|
|
start [/forum/topic.php?fid=59&msg=39971452&tid=2120761]: |
0ms |
get settings: |
24ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
507ms |
get tp. blocked users: |
2ms |
others: | 285ms |
total: | 915ms |
0 / 0 |