|
Удаление записей соответствующих условию из БД в 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 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt Просто хибер это убер-вундервафля :) Видимо и джаве тож самое. - мне больше EclipseLink нравится ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 17:03 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov hVostt Просто хибер это убер-вундервафля :) Видимо и джаве тож самое. - мне больше EclipseLink нравится О. А можете дать нам развернутый анализ по Hiber/EclipseLink? В основном интересует простота исопльзования. Т.к. Хибер не может похвастаться простотой. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 17:22 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton В основном интересует простота исопльзования. Т.к. Хибер не может похвастаться простотой. - в смысле простоты монопенисуарно, хотя хибер, действительно как то поархаичней (больше возможностей - больше гемороев). Основной + от ЭклипсЛинка (на мой взгляд) - он лучше соответствует спецификации JPA ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 17:57 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton, Так там особо альтернатив и нет. Mybatis, jooq и jdbi и то это не орм, а маперы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:08 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Oracle TopLink? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:10 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79, Привет, Стас. Да всё работает, но дело в том, что оно при этом отправляет кучу запросов с бд. В этом его проблема. Да, как-то можно сделать в несколько, но это неоправданно сложно для гибернейт-нуба. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:15 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79, странно ты как-то читаешь... где-то увидел ненависть к хиберу и при этом не заметил, что ТС уже опробовал предлагаемый тобою вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:19 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
И плодить в репозитории методы findByЧтоТоТам - это моветон :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Некоторые вещи Hibernate не умеет делать. Или по крайней мере мне не получилось их реализовать на уровне HQL/Criteria. Например в некоторых задачах обогащения справочников мне нужна была команда UPSERT(это два в одном UPDATE/INSERT) в 1 сетевой раундтрип. И в Oracle и в PG это можно сделать. В первом - с использованием MERGE во втором INSERT-ONCONFLICT-UPDATE. Компромиссы (попробовать-словить-эксцепшен-повторить) меня не устраивали. Это был highload и там загрузка справочников должна проходить быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 у нас супер нагруженная распределенная система... более млн уникальных запросов в день - все работает 12 запросов в секунду не тянет на супер нагруженную систему ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:33 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Напомни jOOQ это платный продукт. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:33 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 Дмитрий Мух пропущено... 12 запросов в секунду не тянет на супер нагруженную систему это был проект не касающийся моей текущей работы) wat? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:40 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79, Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:40 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 mayton Напомни jOOQ это платный продукт. Верно? нет для постгреса) Я пытался приспособить для толстого бизнеса (дата аналитика на MSSQL) jOOQ. У него хитрая лицензия. Похожа на развод для лохов. Вобщем для Oracle/MSSQL (основной дорогой сегмент) надо будет платить. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:44 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 Дмитрий Мух пропущено... wat? What did you mean then ? 12 запросов в секунду не тянет на супер нагруженную систему Или скажу иначе: не надо заливать нам чему нас учили и как обстоят дела сейчас ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:44 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 hVostt Zzz79, Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :) до сих пор на плаву) в чем проблема использовать flyway? Так вы же писали, что мигрировали с одной БД на другую, заменив коннекшен стринг. При чём в таком сценарии флайвей? ) На плаву означает, что технология является одной из предпочтительных для новых проектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:45 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 Дмитрий Мух И плодить в репозитории методы findByЧтоТоТам - это моветон :) зачем плодить -пиши только то что тебе надо Моветон так писать методы в репозитории, да и не по SOLID. Открой для себя шаблон Спецификация. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:49 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt Zzz79, Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :) Миграция - это класс ETL запросов. Массовая загрузка. Миллиарды datarows. Streamable. Hiber - OLTP. Точечные запросы. Работа с формочками. Тело запроса - вариативно. Может динамически конструироваться. Скорость - небольшая. Соотвествует скорости ввода данных всеми операторами системы. Поэтому хибер никогда не будет поддерживать миграции. Другой класс ибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:49 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton hVostt Zzz79, Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :) Миграция - это класс ETL запросов. Массовая загрузка. Миллиарды datarows. Streamable. Hiber - OLTP. Точечные запросы. Работа с формочками. Тело запроса - вариативно. Может динамически конструироваться. Скорость - небольшая. Соотвествует скорости ввода данных всеми операторами системы. Поэтому хибер никогда не будет поддерживать миграции. Другой класс ибо. У хибера знания модели данных есть? Есть. Поддерживать изменения в модели на основе снепшотов можно? Можно :) Значит хибер мог бы, да не осилил. Итак слишком толстый ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:51 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 Дмитрий Мух пропущено... 12 запросов в секунду не тянет на супер нагруженную систему Или скажу иначе: не надо заливать нам чему нас учили и как обстоят дела сейчас про какие 12 запросов ты говоришь? Не тупи. Твои "более млн уникальных запросов в день" - это где-то 12 запросов в секунду. Не тянет на супер нагруженную систему. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:51 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 mayton пропущено... Я пытался приспособить для толстого бизнеса (дата аналитика на MSSQL) jOOQ. У него хитрая лицензия. Похожа на развод для лохов. Вобщем для Oracle/MSSQL (основной дорогой сегмент) надо будет платить. основной сегмент сейчас Postrgres ,по крайне мере значительная часть РФ банков на нем Импорто-замещение? Мне интересно как они с partitioning поступили. Oracle поддерживал PK+сложный partitionning по двум измерениям (матрица типа). PG еле-еле поддерживает только одно из двух. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:52 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Дмитрий Мух Zzz79 пропущено... зачем плодить -пиши только то что тебе надо Моветон так писать методы в репозитории, да и не по SOLID. Открой для себя шаблон Спецификация. А всё равно продолжают так писать... До сих пор :-/ ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:52 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton hVostt Zzz79, Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :) Миграция - это класс ETL запросов. Массовая загрузка. Миллиарды datarows. Streamable. hVostt пишет про миграции схемы/структуры БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:53 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 как бы это нормально написать методы ,которые тебе нужны - они что кушать чтоли просят?) Хех, вот именно, что просят. И кушать просят очень много :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:55 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 Дмитрий Мух пропущено... Моветон так писать методы в репозитории, да и не по SOLID. Открой для себя шаблон Спецификация. что значит моветон) у тебя есть репозиторий и тебе нужно с ним работать) как бы это нормально написать методы ,которые тебе нужны - они что кушать чтоли просят?) моветон это юзать ломбок без понимания того ,что там генерируется - вот тут я согласен,а хибер методы пока их не дергали - как бы и никого не напрягают) Нет, Стас, это реально моветон. Повторю: открой для себя шаблон Спецификация. Ну и про SOLID почитай. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:56 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Дмитрий Мух mayton пропущено... Миграция - это класс ETL запросов. Массовая загрузка. Миллиарды datarows. Streamable. hVostt пишет про миграции схемы/структуры БД. А ну у всех толстых DBMS есть свой Migration Guide. И все равно 100% автоматизация невозможна. Где-то придется вручную что-то делать. Да и нечасто такой праздник. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 18:58 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton А ну у всех толстых DBMS есть свой Migration Guide. И все равно 100% автоматизация невозможна. Где-то придется вручную что-то делать. Да и нечасто такой праздник. Это зависит от. Некоторые людишки так и норовят влезть руками куда-нибудь, типа щас быстрее так, а потом всё идёт по п..е )) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:00 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Я своими руками смигрировал толстую CRM c MS-SQL на Oracle. И это было 90 ручная работа и скриптинг. Да и нельзя там было автоматизировать. Там надо было хранимки просмотреть глазами и переосмыслить. Сильно сомневаюсь чтоб хоть какой-то хибернейт это сделал. Что там... ИИ штоли? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:02 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Дмитрий Мух пропущено... hVostt пишет про миграции схемы/структуры БД. А ну у всех толстых DBMS есть свой Migration Guide. И все равно 100% автоматизация невозможна. Где-то придется вручную что-то делать. Да и нечасто такой праздник. Так, давайте ещё проще. Речь про добавление новых таблиц, или там новых колонок в таблицы и т.п. Лично у нас практически каждый релиз на базы накатываются какие-то миграции. А релизы основного приложения у нас раз в месяц. Отдельных сервисов итого чаще. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:04 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Дмитрий Мух mayton пропущено... А ну у всех толстых DBMS есть свой Migration Guide. И все равно 100% автоматизация невозможна. Где-то придется вручную что-то делать. Да и нечасто такой праздник. Так, давайте ещё проще. Речь про добавление новых таблиц, или там новых колонок в таблицы и т.п. Лично у нас практически каждый релиз на базы накатываются какие-то миграции. А релизы основного приложения у нас раз в месяц. Отдельных сервисов итого чаще. Я вот это имел в виду https://docs.oracle.com/database/121/DRDAA/toc.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:09 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Дмитрий Мух пропущено... Так, давайте ещё проще. Речь про добавление новых таблиц, или там новых колонок в таблицы и т.п. Лично у нас практически каждый релиз на базы накатываются какие-то миграции. А релизы основного приложения у нас раз в месяц. Отдельных сервисов итого чаще. Я вот это имел в виду https://docs.oracle.com/database/121/DRDAA/toc.htm Я понял о чём вы. А hVostt когда писал "Ещё бы хибер из коробки миграции БД поддерживал", то имел в виду переход базы данных от старой схемы к новой. То есть когда мы меняем модель, добавляем в нее какие-то новые свойства или удаляем некоторые свойства. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:17 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Я своими руками смигрировал толстую CRM c MS-SQL на Oracle. И это было 90 ручная работа и скриптинг. Да и нельзя там было автоматизировать. Там надо было хранимки просмотреть глазами и переосмыслить. Сильно сомневаюсь чтоб хоть какой-то хибернейт это сделал. Что там... ИИ штоли? Ну вот в .NET модель любой сложности на EF генерирует схему БД. При чём для любой поддерживаемой СУБД. Вот когда действительно можно переехать на другую СУБД практически сменой провайдера и строки соединения. На выходе готовая БД, с готовой схемой и посевом данных. Это очень удобно. По личному опыту, переоценить данную способность очень сложно. Плюс, хорошо помогает для интеграционных тестов в некоторых сценариях, где не используются специфичные для СУБД инструкции и запросы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:25 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Дмитрий Мух Я понял о чём вы. А hVostt когда писал "Ещё бы хибер из коробки миграции БД поддерживал", то имел в виду переход базы данных от старой схемы к новой. То есть когда мы меняем модель, добавляем в нее какие-то новые свойства или удаляем некоторые свойства. Семантика слова "миграция" слишком широкая ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Там надо было хранимки просмотреть глазами и переосмыслить. Собственно в том числе поэтому я обычно говорю, что хранимок лучше избегать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:28 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 солид я читал - звучит красиво - но все клали на это)) Ни разу никто мне не ответил на простой вопрос, как можно увидеть применение SOLID в действии. Так, чтобы даже менеджер, далёкий от программирования мог заметить, что SOLID применяется на практике. Уже сколько лет задаю этот вопрос.... похоже плохой это термин (точнее, аббревиатура), трудный для понимания. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:32 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
SOLID - это философия. Как ты можешь придумать метрику насколько один проект философичнее (философнее?) другого? Мы даже взяв первую буквочку (S) Single-Resp уже уходим в сложные не инженерные понятия. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:50 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt mayton Я своими руками смигрировал толстую CRM c MS-SQL на Oracle. И это было 90 ручная работа и скриптинг. Да и нельзя там было автоматизировать. Там надо было хранимки просмотреть глазами и переосмыслить. Сильно сомневаюсь чтоб хоть какой-то хибернейт это сделал. Что там... ИИ штоли? Вот когда действительно можно переехать на другую СУБД практически сменой провайдера и строки соединения. Ты наверное хочешь лишить нас всех работы? Попробуй в форуме Oracle озвучить такую мысль. Только я отбегу подальше... чтоб не зацепило взрывной волной. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 19:52 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton, )) Net'чики, у них другая философия,... И планета. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 20:56 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 но надо уметь пользоваться это отличный эпиграф к чему угодно P. S. мля, вот бы тому нытику из соседнего топика хотя бы 25% Стасовой самоуверенности, мог бы горы своротить (ну или хотя бы работу найти ) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 21:39 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 где тут лушче и где ваш солид да всем пох вообщем то) все эти солиды на собесах и в учебниках) Это на 99% "джентльменское" соглашение у вас в команде. Как вы решите - так и будет. И тут никакой PM или бизнес не может повлиять потому что не ему этот код писать. Это - ваше родное. Но если вы будете "плевать на пол в хате" или "срать себе под ноги" то у вас будут внутренние конфликты. Взаимные обличения. И попытки переписать и переделать код друг за другом. И вот чтобы этих конфликтов не было и придуманы все эти стандарты кодирования. SOLID - это просто одна из форм. Достаточно философская и рекомендательная. Ни один сканер (ни Сонар ни FindBug) не детектируют SOLID. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 22:07 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Я не понимаю к чему ты клонишь. Не хочешь соблюдать солид - не соблюдай. Пиши как бог даст. Только выложи коллегам на code-review и внимательно слушай что они говорят. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 22:32 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 2й принцип разбивается о рефлексию -мне пох что там закрыто -я беру объект класса и беру что мне надо и модифицирую как мне надо) Рефлексия нарушает более базовые постулаты. В частности инкапсуляцию . Я в форуме много раз это говорил и уже сорвал голос. Это очень серъезное нарушение и Кент Бек сейчас скрипит зубами и изрыгает страшные проклятия читая наш топик. Но я думаю что когда Java9/modules войдут в обиход - то рефлексию чуть-суть прибьют ближе к земле. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 23:31 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 тоесть по русски солид звучит так- свышь ты это сделай класс с одним полем( второе нельзя ,иначе принцип нарушится))) сделай там что то приватным - нахуа?непонятно кому надо возьмет что надо и далее просто соблюдай ООП базисы))) Single-Resp там речь идет не о том что тебе надо сделать 1 поле. А просто о том что ты решаешь только одну маленькую бизнес операцию. Например есть SimpleDateFormatter. Он - обеспечивает конверсию дат. Хотя он внутри себя может содержать тыщу полей. Его респонсибилити - одна. FileInputStream - обеспечивает файловый хендлер на чтение. Тоже одна отвественность. И если тебе надо компоновать все файлы с датой старше прошлого года то ты компонуешь SimpleDateForm и FileInputStream. Они вместе решат эту комплексную задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2020, 23:35 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton SOLID - это философия. Как ты можешь придумать метрику насколько один проект философичнее (философнее?) другого? Мы даже взяв первую буквочку (S) Single-Resp уже уходим в сложные не инженерные понятия. Никакая это не философия :) Чем S не инженерное понятие? S легко поддаётся метрике, например, количество тестов на юнит. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 05:20 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton hVostt пропущено... Вот когда действительно можно переехать на другую СУБД практически сменой провайдера и строки соединения. Ты наверное хочешь лишить нас всех работы? Попробуй в форуме Oracle озвучить такую мысль. Только я отбегу подальше... чтоб не зацепило взрывной волной. Это на любом форуме любой DBMS тебя распнут за упоминание ORM :) Но это лишь показатель привязанности к определённым не самым эффективным, но при этом горячо любимым подходам к разработке. Ну хочется людям вручную делать то, что легко за них делает компьютер, щто поделаешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 05:22 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 это все эфимерная шляпа)я давно уже понял это что все этип принципы и шаблоны на практике никто не юзает - а в 90% случаев ты зайдя в один из крупнейших РФ банков где то увидишь ДТО в котором есть сетеры сет 1,сет2 ,сет 3 ))) и так до бесконечности) От того, что большая часть населения не может 2+2 сложить вовсе не означает, что математика это блажь для избранных и штука эфемерная. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 05:23 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Ни один сканер (ни Сонар ни FindBug) не детектируют SOLID. Ох, даже здесь наблюдаются трудности с тем, чтобы сказать -- как всё же реально использовать SOLID на практике. А ведь ответ на поверхности... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 05:24 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Только выложи коллегам на code-review и внимательно слушай что они говорят. Вооо... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 05:24 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 это твоя интерпритация на самом деле ты знаешь что там написано) и например у меня есть куча классов которые делают схожие задачи но для разных процессов тот же батч зачем мне его разделять на 100500 классов? там есть херова тонна методов под каждый процесс не майтон солид устарел давно - даже по тому примеру что ты привел))) Э-э-э вообще-то Single-Responsibilty как раз про это. Т.е. дизайн приложения и классов должен быть спроектирован так, что бы каждый класс отвечал за одно действие. А когда у вас куча классов делает одно и то же... То что-то здесь не так. Т.к. как раз ответственность размазана за какие-то действия размазана м/у этими классами. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 08:03 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt mayton SOLID - это философия. Как ты можешь придумать метрику насколько один проект философичнее (философнее?) другого? Мы даже взяв первую буквочку (S) Single-Resp уже уходим в сложные не инженерные понятия. Никакая это не философия :) Чем S не инженерное понятие? S легко поддаётся метрике, например, количество тестов на юнит. Ну я написал 2 теста к примеру. Какие из этого следуют выводы? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 08:57 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Ну я написал 2 теста к примеру. Какие из этого следуют выводы? Покрытие юнита 100% ? Покрытие логики 100% ? Если так, значит ваш юнит скорее всего соответствует SoR. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 09:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
У нас с тобой все таки разное понимание тестирования. У меня количество тестов соотвествует количеству бизнес-сценариев. Я взял 1 логику и доказал ее формальную правоту с помощью двух сценариев. Следует из этого или нет SingleResp - я пока не знаю. Не уверен. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 09:32 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Дмитрий Мух Открой для себя шаблон Спецификация. - хрен редьки не слаще. Просто перенос сложности в другое место - вместо кучи методов, куча классов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 10:25 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79, Действие по БЛ не равно методу класса ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 10:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 а зачем куча классов которые делают одно и тоже?так просто не бывает) а вот то что один класс отвечает за одно действие - полнейшая дичь,сейчас такое даже сложно представить на практике вот у меня есть репозиторий и его имплементация - я что должен под каждый метод отдельный класс писать?)) типо удалить один,записать другой и тд- ну это же дичь? а если в один класс мы это помещаем то это уже два разных действия и может быть мне когда то в рамках двух разных задач потребуется менять оба метода- что опять же будет противоречить этим принципам например поступит задача на изменение предиката в удалении ,а в записи добавится еще один аргумент- да такое бывает - когда добавляют в таблицу колонку)) и тут уже рушится этот солид- так как в одном классе будут несколько изменений связанных с абсолютно разными задачами Для этого есть другие страшные аббревиатуры DI и IOC ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 12:14 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton У нас с тобой все таки разное понимание тестирования. У меня количество тестов соотвествует количеству бизнес-сценариев. Я взял 1 логику и доказал ее формальную правоту с помощью двух сценариев. Я не знаю как можно юнит-тестирование понимать иначе. Бизнес-сценарии и юнит-тесты вообще ортогональны друг другу. Их количество никак между собой не взаимосвязано. mayton Следует из этого или нет SingleResp - я пока не знаю. Не уверен. Юнит-тесты покрывают код. Они тестируют реализацию юнитов, компонентов. При чём тут сценарии? Возьмём самый простой случай. Проверка ИНН на корректность. Есть компонент, который выполняет одну простую задачу, проверяет этот самый ИНН на корректность. Используется совершенно в разных бизнес-сценариях. Если этот компонент кроме проверки ИНН, будет ещё что-нибудь делать, например, проверять е-мейл до кучи, а также отправлять смс-ки, то это будет нарушением SoR. Мне трудно вообще вписаться в картину мира, где SoR вызвает такие проблемы. Реал. Это прям какое-то зазеркалье ) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 13:12 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Хорошо. Вот у тебя есть главный компонент. Application. Он контейнером в себя включает все другие компоненты. Как ты тестами покажешь что у него - SoR? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 13:16 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Хорошо. Вот у тебя есть главный компонент. Application. Он контейнером в себя включает все другие компоненты. Как ты тестами покажешь что у него - SoR? Конечно, ведь Application не содержит всю логику внутри себя, а вызывает реализацию через соответствующие абстракции. Юнит-тест должен гарантировать, что эти абстракции будут вызваны правильно, а результат правильно обработан. Вместо реализации абстракций подставляются моки или стабы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 13:24 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt mayton Хорошо. Вот у тебя есть главный компонент. Application. Он контейнером в себя включает все другие компоненты. Как ты тестами покажешь что у него - SoR? Конечно, ведь Application не содержит всю логику внутри себя, а вызывает реализацию через соответствующие абстракции. Юнит-тест должен гарантировать, что эти абстракции будут вызваны правильно, а результат правильно обработан. Вместо реализации абстракций подставляются моки или стабы. OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность" И... я дальше ожидаю словесной формулировки. Какая? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 13:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton hVostt пропущено... Конечно, ведь Application не содержит всю логику внутри себя, а вызывает реализацию через соответствующие абстракции. Юнит-тест должен гарантировать, что эти абстракции будут вызваны правильно, а результат правильно обработан. Вместо реализации абстракций подставляются моки или стабы. OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность" И... я дальше ожидаю словесной формулировки. Какая? Как показать, что Application "вызывает реализацию через соответствующие абстракции"? Это будет пачка тестов вида: Application_ShoudCallComponentOne_When... Application_ShoudCallComponentTwo_When... Когда сто процентное покрытие тестами такого вида, то очевидно, что Application только то и делает, что "вызывает реализацию через соответствующие абстракции". ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 13:37 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Дмитрий Мух очевидно, что Application только то и делает, что "вызывает реализацию через соответствующие абстракции". Это самое прекрасное определение Single-Resp. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 13:59 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Дмитрий Мух очевидно, что Application только то и делает, что "вызывает реализацию через соответствующие абстракции". Это самое прекрасное определение Single-Resp. Ну вот и будет видно, сколько ответственности несёт в себе ваш Application. По идее, он должен запустить планировщик задач, цикл обработки событий/запрсоов, или смаршрутизировать команду на вполнение. И всё. А у вас что там находится? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:07 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность" И... я дальше ожидаю словесной формулировки. Какая? Если это некое консольное приложение, на вход которому приходят параметры командной строки, то приложение должно использовать парсер параметров командной строки, и выполнить маршрутизацию команды соответствующему обработчику. Больше ничего ваш Application делать не должен. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:12 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt mayton OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность" И... я дальше ожидаю словесной формулировки. Какая? Если это некое консольное приложение, на вход которому приходят параметры командной строки, то приложение должно использовать парсер параметров командной строки, и выполнить маршрутизацию команды соответствующему обработчику. Больше ничего ваш Application делать не должен. Воооот. Вот поэтому я это и называю фи-ло-со-фи-я. Мдя. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:22 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Воооот. Вот поэтому я это и называю фи-ло-со-фи-я. Мдя. Какая ещё философия? Если я книгу по высшей математике могу применить, как подпорку для двери, стоит ли писать об этом в назначении книги? Ещё могу книги использовать как подставку для стола, и т.д. Философия? Нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:37 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Хвост. Ты знаешь, когда Иогана Баха спросили как это он так ловко и хорошо играет на органе - он ответил - Ничего сложного! Я просто своевременно нажимаю соотвестсвующие клавиши. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:43 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton соотвестсвующие ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:46 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Хвост. Ты знаешь, когда Иогана Баха спросили как это он так ловко и хорошо играет на органе - он ответил - Ничего сложного! Я просто своевременно нажимаю соотвестсвующие клавиши. Красивая аналогия. Но я предлагаю от аналогии перейти к делу :) Каков итог-то? В топку эти ваши принципы и методологии разработки, пилим как придётся, основываясь на субъективном понимании прекрсного по единственному рабочему принципу "я художник -- я так вижу!"? :) Или проблемы в понимании вызывает только один единственный принцип SoR из солид? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 14:59 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt, Мое имхо что прогер всегда был художником))) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:03 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt mayton Хвост. Ты знаешь, когда Иогана Баха спросили как это он так ловко и хорошо играет на органе - он ответил - Ничего сложного! Я просто своевременно нажимаю соотвестсвующие клавиши. Красивая аналогия. Но я предлагаю от аналогии перейти к делу :) Каков итог-то? В топку эти ваши принципы и методологии разработки, пилим как придётся, основываясь на субъективном понимании прекрсного по единственному рабочему принципу "я художник -- я так вижу!"? :) Или проблемы в понимании вызывает только один единственный принцип SoR из солид? Видишь ли в чем дело тут.... Модульный тест просто показывает наличие какого-то то свойства у модуля. Мне кажется что НЕДОСТАТОЧНО будет показать просто тесты. Тут нужно наверное зайти со стороны базового интерфейса например. А тогда зачем тесты? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:04 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Давайте вот посмотрим на этот интерфейс. Код: java 1. 2. 3. 4. 5.
Он - реализует SingleResp? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:07 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Он - реализует SingleResp? у него нет реализации, только контракт. его имплементация может как соблюдать так и нарушать хотя с другой стороны, наличие кучи методов с интересными названиями может уже и в интерфейсе намекать о нарушении ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
PetroNotC Sharp был Было время, когда можно было долго пилить сложный проект в одиночку или небольшой слаженной группой. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:30 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Basil A. Sidorov PetroNotC Sharp был Было время, когда можно было долго пилить сложный проект в одиночку или небольшой слаженной группой. Ты написал "нет", но не обосновал. А счас пишут проекты большой группой? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:42 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton, Тестируют фнкционал. А интерфейс - контракт. Или Намерения. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:44 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
chpasha mayton Он - реализует SingleResp? у него нет реализации, только контракт. его имплементация может как соблюдать так и нарушать хотя с другой стороны, наличие кучи методов с интересными названиями может уже и в интерфейсе намекать о нарушении Хорошо. Тогда я предложу такое определение. Классы, реализующие функциональные интерфейсы (ФИ) обладают SingleResp в рамках методов ФИ. Пример ФИ : Function<T,R>, Consumer<T>, Supplier<T>. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 15:45 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
PetroNotC Sharp но не обосновал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:02 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Хорошо. Тогда я предложу такое определение. Классы, реализующие функциональные интерфейсы (ФИ) обладают SingleResp в рамках методов ФИ. Пример ФИ : Function<T,R>, Consumer<T>, Supplier<T>. х.з., ну наверное :) , скажем так, в их контракте ничто не предвещает. впрочем как и в предыдущем примере ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:03 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Basil A. Sidorov PetroNotC Sharp но не обосновал. Как и было. Кодировщик делает строго по ТЗ. Программист каждую строчку думает как лучше - художник. Есть как первые так и вторые всегда и везде. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:25 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Давайте вот посмотрим на этот интерфейс. Код: java 1. 2. 3. 4. 5.
Он - реализует SingleResp? Интерфейс ничего не реализует :) Но интерфейс следует по контракту SoR, так как выполняет только одну задачу: конвертирует экземпляр одного типа в другой тип (или тот же, в контракте не декларируется). ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:27 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Видишь ли в чем дело тут.... Модульный тест просто показывает наличие какого-то то свойства у модуля. Мне кажется что НЕДОСТАТОЧНО будет показать просто тесты. Тут нужно наверное зайти со стороны базового интерфейса например. А тогда зачем тесты? Юнит-тесты тестируют реализацию (юнита). Интерфейсы же позволяют протестировать конкретную реализацию изолировано от зависимостей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:29 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton, Говори - простт классы. Зачем добавка про интерфейсы? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:32 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Вот как прекрасно. Тоесть если мы слегка поднажмём на контракт - то получим в правой руке искомое. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:34 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Разумеется многие посмотрев на код скажут. Mayton ты што опух? Тут и так воочию видно (очевидно) что этот чортов класс Single-Resp. Я говорю - окей. Допустим я опух. Можно эту очевидность формализовать? Один вариант предложил Хвост. Он считает что надо тестировать и через тестовые сценарии доказывать что там БОЛЬШЕ ничего нет. Кроме того что надо. Я говорю окей. А можно декларативно? Тоесть мы можем так декларировать класс чтоб... .комар носа не подточил! Чтоб..... Броня!!! Чтоб как каменюка стояла это панимаешь сингле-респонсибилити. Хотя я понимаю что вы обычно не юзаете реализации с 1 методом и на практике все равно будет 100500 методов. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 16:50 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Разумеется многие посмотрев на код скажут. Mayton ты што опух? Тут и так воочию видно (очевидно) что этот чортов класс Single-Resp. Я говорю - окей. Допустим я опух. Можно эту очевидность формализовать? Один вариант предложил Хвост. Он считает что надо тестировать и через тестовые сценарии доказывать что там БОЛЬШЕ ничего нет. Кроме того что надо. Был вопрос про метрику оценки, я сказал пример такой метрики: тесты. Однако юнит-тесты пишутся не для этой метрики, это просто дополнительный бонус. mayton Я говорю окей. А можно декларативно? Тоесть мы можем так декларировать класс чтоб... .комар носа не подточил! Чтоб..... Броня!!! Чтоб как каменюка стояла это панимаешь сингле-респонсибилити. Это принцип, нарушение которого приводит к увеличению сложности и другим неприятным эффектам. Вывели эти принципы эмпирическим путём. В общем-то любые методики, методологии и практики были выведены для того, чтобы не наступать на грабли, которые отбили лоб не одной тысяче людей. mayton Хотя я понимаю что вы обычно не юзаете реализации с 1 методом и на практике все равно будет 100500 методов. Речь не в количестве методов. А об программной ответственности. Не так сложно понять, решает ли класс одну конкретную задачу, или несколько слабо связанных задач. Следование этому принципу порождает увеличение количество классов. Что иногда приводит некоторых людей в ужас. Дескать, зачем же плодить классы, когда можно было всё запихать в один. Полагаю на заре дисциплины, декомпозиция программы на процедуры могла вызывать такой же батхёрд у мамонтов программирования с их километровыми листингами, напичканными GOTO ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 17:08 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton, Ну и самое главное. Как же применять SOLID на практике? Кого не спросишь: — ну... знаю, что-то слышал, что-то читал, готов раскрыть значение каждой буквы — ну... да, применяю... там... Да-да, написав каждую строчку кода сижу и задумываюсь, а соответствует ли он солиду, солидный ли мой код? ))) Но ответ лежит на поверхности, особенно для людей, работающих в команде с применением код ревью. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 17:10 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Хвост. Я тебе честно скажу что я SOLID иногда нарушаю. Ну просто не всегда удаётся следовать такому себе философскому идеалу. Тут еще трудность в том что когда в код смотрят 2 человека, каждый из них видит своё. Как в той притче где двое смотрели на луну и каждый из них пальцем указывал в свою сторону. Вот давай щас пойдем в гитхаб и рандомно начнем смотреть classes и я готов спорить что мы не придем к единому мнению даже по поводу Single-Resp. Этож надо еще смотреть в семантику кода. В развитие. В то что было написано и то что имелось в виду. И это мы еще только первую букву (S) разбирали. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 20:24 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton, что, даже при реализации такого шаблона как репозиторий не получается следовать приниципу единственности ответственности? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 20:40 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Просто SOLID я упомянул в контексте реализации репозитория, а дискуссию развили так, что типа SOLID - это философский идеал. И типа напрашивается вывод, что даже пресловутый репозиторий фиг напишешь по этим принципам ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 20:45 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Хвост. Я тебе честно скажу что я SOLID иногда нарушаю. Звучит как признание в нарушениях ПДД ) mayton Ну просто не всегда удаётся следовать такому себе философскому идеалу. Тут еще трудность в том что когда в код смотрят 2 человека, каждый из них видит своё. SOLID лежит сугубо в практической и только практической плоскости. Ничем философским тут не пахнет и в помине :) Насчёт того, что видят каждый своё, ну а как в таких условиях вы собираетесь вести командную работу в принципе? Типа два художника каждый со своим больным воображением пришли рисовать единую картину? mayton Вот давай щас пойдем в гитхаб и рандомно начнем смотреть classes и я готов спорить что мы не придем к единому мнению даже по поводу Single-Resp. Этож надо еще смотреть в семантику кода. В развитие. В то что было написано и то что имелось в виду. Популярные проекты на гитхабе зачастую отличаются очень высоким качествам. mayton И это мы еще только первую букву (S) разбирали. Ну так вот и хотелось бы разобраться, какие у вас есть с ней проблемы. Вполне уместно рассмотреть на примере репозитория, о чём говорит skyANA. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.06.2020, 21:44 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt, В java в отличии от шарпа есть JPA. И поэтому пример от skyANA мимо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 07:42 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
PetroNotC Sharp В java в отличии от шарпа есть JPA. Нашлёпка какая-то над хибером c нетипизированными JPQL запросами :) В .NET это Entity SQL. Ну и при большой любви к хиберу можно подключить NHibernate и писать HQL ) Не исключаю, что стырили идею как раз из JPA. Но какой смысл писать объектные запросы, если нет информации о типах, как в LINQ? Ни тебе статической проверки на этапе компиляции, ни интеллисенса (хотя может идея как-то умеет, не исключаю). Фишка LINQ, что написанный запрос может как транслироваться в БД, так и оперировать самыми обычными коллекциями объектов в памяти. Универсально. Если уж писать запросы в строках, то имеет смысл писать из БД, а не к промежуточной нашлёпке. PetroNotC Sharp И поэтому пример от skyANA мимо. Т.е. если у тебя есть JPA, тебе не нужен репозиторий? ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 14:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt PetroNotC Sharp В java в отличии от шарпа есть JPA. Нашлёпка какая-то над хибером c нетипизированными JPQL запросами :) Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас появятся корректировки и дополнения к твоей фразе. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 14:33 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас появятся корректировки и дополнения к твоей фразе. А что не верно в формулировке? JPA это спецификация, при чём языка JPQL основан на HQL. Hiber реализует JPA. Скорректируешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 15:09 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 15:34 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался. Ясно ) Ну нашлёпка же, над хибером. При чём если ты используешь расширенные возможности хибера, то смысл в спецификации становится всё менее ценным, так как на другую реализацию уже перейти не получится в принципе. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 17:36 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt языка JPQL основан на HQL - одновременно с Hibernate появилась спецификация Java Data Objects (JDO) и JDOQL, так что кто там на ком основан вопрос в принципе темный hVostt если ты используешь расширенные возможности хибера, то смысл в спецификации становится всё менее ценным, так как на другую реализацию уже перейти не получится в принципе. - значит, при наличии планов смены ORM, надо следовать спецификации JPA ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 21:56 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov - одновременно с Hibernate появилась спецификация Java Data Objects (JDO) и JDOQL, так что кто там на ком основан вопрос в принципе темный Почему же тёмный? https://en.wikipedia.org/wiki/Java_Persistence_Query_Language JPQL is based on the Hibernate Query Language (HQL), an earlier non-standard query language included in the Hibernate object-relational mapping library. Hibernate and the HQL were created before the JPA specification. As of Hibernate 3 JPQL is a subset of HQL. Опять врут и темнят? ) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 23:46 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov - значит, при наличии планов смены ORM, надо следовать спецификации JPA Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы. Это так, небольшой наброс ) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 23:48 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt, >Т.е. если у тебя есть JPA, тебе не нужен репозиторий? ))) Он и в шарпе не нужен. Он уже написан в EF. Это skyANA носится с ним по всем веткам. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 07:53 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt Kachalov - значит, при наличии планов смены ORM, надо следовать спецификации JPA Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы. Это так, небольшой наброс ) Менять не будут. Просто их все построили и причесали под одну гребёнку))))) Под один интерфейс. Имхо более половины проектов на JPA ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 07:56 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы. - проекты разные бывают. Есть проекты где изначально закладывается мультибазовость, т е возможность работы с разными базами у разных заказчиков. А что касается смены ORM, тоже бывает - когда неожиданно оказывается что нужная фича не поддерживается текущей ORM или усилия по вкрячиванию нужной ORM (тип и версия) в сервер приложений слишком велики. hVostt Kachalov - одновременно с Hibernate появилась спецификация Java Data Objects (JDO) и JDOQL, так что кто там на ком основан вопрос в принципе темный Почему же тёмный? https://en.wikipedia.org/wiki/Java_Persistence_Query_Language JPQL is based on the Hibernate Query Language (HQL), an earlier non-standard query language included in the Hibernate object-relational mapping library. Hibernate and the HQL were created before the JPA specification. As of Hibernate 3 JPQL is a subset of HQL. Опять врут и темнят? ) - нет, просто не обладают всей полнотой информации) Википедию пишут обычные люди, не всегда обладающие нужными экспертными знаниями. Скажите честно, до того как я написал абревиатуру JDOQL Вы про нее знали или вспоминали (это я не для того чтобы обидеть, а для примера)? Уверен что ни автор статьи, ни его читатели не участвовали в создании спецификации JPA и разработке Hibernate, именно по этому история темная. Или к примеру тот же Hibernate - ведь наверняка уверены, что до него ничего не было? В то время как TopLink был портирован на Java в 1998 со Smalltalk. Или также появившийся в начале 2000х Apache Cayenne. И т д. Идеи и настроения витали в воздухе, поэтому лично я утверждать что спецификацию JPA сделали именно на основе Hibernate не стал бы. Ниже интересная цитата из книги "Persistence in the Enterprise: A Guide to Persistence Technologies": ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 10:23 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt Kachalov - значит, при наличии планов смены ORM, надо следовать спецификации JPA Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы. Это так, небольшой наброс ) Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 10:30 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет. - в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко (проблемы там где делают unwrap и хардкодят хинты - но ... сами понимаете, это по сути дурной тон кодирования). Хотя, если быть честным, в большинстве проектов используют Hibernate и никаких предпосылок использовать что то иное нет) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 10:54 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov mayton Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет. - в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко (проблемы там где делают unwrap и хардкодят хинты - но ... сами понимаете, это по сути дурной тон кодирования). Хотя, если быть честным, в большинстве проектов используют Hibernate и никаких предпосылок использовать что то иное нет) Тоесть говорим ORM - подразумеваем Хибернейт. Это как говорим Ксерокс - подразумеваем некий *Noname* копировальный аппарат. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 11:09 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Тоесть говорим ORM - подразумеваем Хибернейт. - я бы сформулировал иначе) Говорим ORM, подразумеваем JPA (хотя есть крупные EE проекты где работают без JPA - например Diasoft в некоторых своих широко внедренных проектах использует Apache Cayenne или Google App Engine, где применяют JDO, есть и проекты на iBATIS). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 11:25 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov mayton Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет. - в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 11:39 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov hVostt Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы. - проекты разные бывают. Есть проекты где изначально закладывается мультибазовость, т е возможность работы с разными базами у разных заказчиков. А что касается смены ORM, тоже бывает - когда неожиданно оказывается что нужная фича не поддерживается текущей ORM или усилия по вкрячиванию нужной ORM (тип и версия) в сервер приложений слишком велики. Ну обычно, это означает почти полное переписывание кодовой базы, или её части. Нельзя взять другой ORM, и написать декораторы к существующим интерфейсам. Опять же. Если не проектировалось всё таким образом, что ORM не лезет дальше слоя доступа к данным ни в каком виде. Kachalov - нет, просто не обладают всей полнотой информации) Википедию пишут обычные люди, не всегда обладающие нужными экспертными знаниями. Скажите честно, до того как я написал абревиатуру JDOQL Вы про нее знали или вспоминали (это я не для того чтобы обидеть, а для примера)? Уверен что ни автор статьи, ни его читатели не участвовали в создании спецификации JPA и разработке Hibernate, именно по этому история темная. Или к примеру тот же Hibernate - ведь наверняка уверены, что до него ничего не было? В то время как TopLink был портирован на Java в 1998 со Smalltalk. Или также появившийся в начале 2000х Apache Cayenne. И т д. Идеи и настроения витали в воздухе, поэтому лично я утверждать что спецификацию JPA сделали именно на основе Hibernate не стал бы. Ниже интересная цитата из книги "Persistence in the Enterprise: A Guide to Persistence Technologies": Не знал :) Но чему тогда верить? И зачем столько тьмы в простом вопросе? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 15:16 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt Но чему тогда верить? И зачем столько тьмы в простом вопросе? - не стоит создавать мифы (и ограничивать кругозор). Тем кто начинал свой путь с Hibernate, сложнее, так как особой необходимости копаться в альтернативах и истории нет, тем кто видел как это Hibernate появился, проще, так как уже все альтернативы попробованы. hVostt Ну обычно, это означает почти полное переписывание кодовой базы, или её части. Нельзя взять другой ORM, и написать декораторы к существующим интерфейсам. Опять же. Если не проектировалось всё таким образом, что ORM не лезет дальше слоя доступа к данным ни в каком виде. - зачем возлагать на ORM дополнительную логику? Данные должны быть отмаплены на БД и закэшены, там где можно - большего от ORM не требуется ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 17:03 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Андрей Панфилов Ну вот если смотреть на хибер, то у него таки-много расширений JPA направленных на улучшение производительности, так что есть сомнения, что слезть "прооптимизированной" хиберовской модели будет просто. - что может быть лучше Native SQL в смысле производительности? (вопрос провакациононный) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 17:06 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Хибер хорош пока никто не пытается в context прогрузить всю базу ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 17:15 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 Kachalov пропущено... - что может быть лучше Native SQL в смысле производительности? (вопрос провакациононный) вопрос в том зачем она тебе эта производительность? что такое производительность в рамках облачных технологий и современных серверов ? Современные сервера с 2005 года то толком частоту свою уже не поднимают. А что облаки? Они за счет распределенных данных могут скейлить только чтение. Как только пошла запись или конкурирующая запись то эти облаки хуже монолита. А SQL знать просто надо. Это как латынь среди врачей. Единый язык на котором можно описывать данные. И создал его математик. Это ... не коллекции с аррейлистами и не циклы крутить. А теория множеств. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 23:03 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov hVostt Но чему тогда верить? И зачем столько тьмы в простом вопросе? - не стоит создавать мифы (и ограничивать кругозор). Тем кто начинал свой путь с Hibernate, сложнее, так как особой необходимости копаться в альтернативах и истории нет, тем кто видел как это Hibernate появился, проще, так как уже все альтернативы попробованы. Что плохого, что JPA за основу взял HQL? Создание подобного мифа -- бессмысленно. Для чего? Kachalov - зачем возлагать на ORM дополнительную логику? Данные должны быть отмаплены на БД и закэшены, там где можно - большего от ORM не требуется В таком виде сейчас существую так называемые micro ORM, потому как "серьёзные" ORM предоставляют гораздо больше сервисов. Если решить только одну задачу -- маппить данные в классы, то остальное придётся всё кодить. А когда 10 программистов разработают свой слой доступа к данным, обнаружится, что они просто сделали принципиально одно и то же, но каждый на свой лад. Собственно такие проекты, как Hibernate пытались обобщить множество подобных решений под одной крышей. Поэтому ORM это давно не только маппинг. Обычно там и репо и UOW, и свой язык запросов, кеширование, отслеживание изменений, аудит, точки расширения и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 23:06 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 пс. я на работе почти месяц боролся за то ,что в 2020 году не нужно батчить файл размером 10000 строк но так и не смог побороть олд скулеров,которые выросли на памяти в 128 кб) ты им просто тупо не можешь обьяснить,что сейчас у сервиса 16 гиг озу и ему твои буферы в 4 кб или 500 кб без разницы А расскажи как ты себе сам смысл батча понимаешь? Может они были правы да ты просто не про то думал. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2020, 23:43 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 тоесть вот у меня на проде сервак 16 гиг -полностью выделен под мой сервис - какого хрена я должен юзать батч для отправки распарсенного csv- ну это же просто смешно аргументация лида - а вдрух когда то придет очень большой файл)) А вам повезло с лидом. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 03:29 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 и вообще конечно каждый прогер должен хотя бы немного отдуплять куда его приложение ставится Поэтому мы видим кучу версий каждой библиотеки вида: версия под 8Гб оперативы версия для 16Гб оперативы ... версия для слабодумающих ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 03:31 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Мне кажется чрезмерное потребление памяти - просто признак другой проблемы. Например бизнес-сущности дублируются в памяти. Каждый поток владеет независимой копией хотя по бизнесу - сущности уникальны. Многие операции агрегации могут быть выполнены очень быстро и эффективно в БД (SQL) или BigData, без перекачивания их на сторону App. И долго не отрабатывают финализаторы. Данные уже вроде-бы не нужны но какие-то глобальные коллекции их продолжают удерживать (типичный leak для java) и явной команды на освобождение никак не приходит. Тоесть дело даже не в 16Гб а в том что если проблема системная то там хоть 32 и хоть 64 ставь она будет с ростом бизнеса также безсмысленно потреблять все что есть. Кстати для GC класса Parallel простое бездумное увеличение Xmx приводило к новой проблеме. К фризу потоков которые обслуживали сетевые сокеты и как следствие появлялись новые сетевые ошибки еще более сложные и комплексные чем просто OOM. Как реагирует G1GC на простое растягивание памяти - непонятно. Возможно в меньшей степени но тем не менее фризы надо регулировать доп-параметрами. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 09:20 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79, >он отправляет порциями файл- как еще Сишник наверно. Они любят буфера, кеши, батчи. Чтобы записать строку будут буфер под нее выделять и частями копировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:25 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 Kachalov - что может быть лучше Native SQL в смысле производительности? (вопрос провакациононный) вопрос в том зачем она тебе эта производительность? что такое производительность в рамках облачных технологий и современных серверов ? если только ты не пишешь новый гугол- тогда к чему все эти разговоры ?ваши 1000 запросов в день сейчас обработает даже утюг) чем то навеяло антипатерн GAS FACTORY проецируемый на производиельность системы- важные архитекторы не очень важных проектов раздувая щеки сетуют на нехватку производительности) уж на сколько у нас большой проект ,которым пользуется где то процентов 15% населения РФ и это мы на хибере сидим а вам то куда с вашими цветочными магазинами с двумя посетилями в месяц) - какой то беспредметный наезд. Я работал в разных проектах (в том числе ... бла-бла-бла ... сейчас это ЕМИАС) и нативные запросы, необходимость их оптимизации и пятиэтажные джойны с позапросами - не редкость (и эффект на производительность бывает более чем существенным). Лично я не считаю что native sql -это правильный путь однако плевать на производительность даже PetShop глупо. Когда дебильный код работает у разраба на трех записях в базе - это не значит что он будет так же хорошо работать на нескольких миллионах записей на проде. В ЕМИАС, например, записей довольно много а скорость выполнения запроса (метода) это критический параметр который лимитируется, а вот кластеризация "утюга", к сожалению, не повышает скорость выполнения отдельных методов, что накладывает обязательства на архитектора и разработчика, так как тупым увеличением мощности железа вопрос не решается ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:26 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt Что плохого, что JPA за основу взял HQL? Создание подобного мифа -- бессмысленно. Для чего? - Вы зачем то начали форсить тему "кто на ком стоял", я Вас поправил, что история более сложная чем это написал хз кто в википедии. Если для Вас это важно, можно дискутировать дальше, хотя мне этот вопрос кажется не существенным. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:31 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov hVostt Что плохого, что JPA за основу взял HQL? Создание подобного мифа -- бессмысленно. Для чего? - Вы зачем то начали форсить тему "кто на ком стоял", я Вас поправил, что история более сложная чем это написал хз кто в википедии. Если для Вас это важно, можно дискутировать дальше, хотя мне этот вопрос кажется не существенным. Hibernate was started in 2001 by Gavin King with colleagues from Cirrus Technologies as an alternative to using EJB2-style entity beans. The original goal was to offer better persistence capabilities than those offered by EJB2; by simplifying the complexities and supplementing certain missing features. The final release date of the JPA 1.0 specification was 11 May 2006 as part of Java Community Process JSR 220. The JPA 2.0 specification was released 10 December 2009 (The Java EE 6 platform requires JPA 2.0.[1]) The JPA 2.1 specification was released 22 April 2013 (The Java EE 7 platform requires JPA 2.1.[2]) Я тему не с потолка взял. Написано и очевидно из истории. Зачем вы тут пытаетесь какое-то РенТВ включать, тёмная история бла-бла-бла, в чём смысл? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:36 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 лид у нас хороший,но вот с этой батч системой я в корне не согласен- в текущих реалиях это GAS FACTORY Общие решения лучше и всем параметрам, кроме возможно сложности. Тем более всё, что связано с загрузкой данных, есть правила, которых лучше придерживаться. Это как на стройке, вы начинаете рассказывать, что на этом участке ничего на голову вам не упадёт, и зачем носить каску. Но у вас замечательный лид, который заставляет носить каску везде, и не важно на каком участке стройки вы там ходите. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:38 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov чем это написал хз кто в википедии Вот это пренебрежительное отношение к вики никогда не понимал. Там вообще-то источники есть со ссылками. И типа никто из тысяч разработчиков не спохватился не бросил исправление. Ну-ну. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:40 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 mayton пропущено... А расскажи как ты себе сам смысл батча понимаешь? Может они были правы да ты просто не про то думал. он отправляет порциями файл- как еще Ну а для взаимодействия двух систем какая разнциа. 100 вставок по 1 строке. Или 1 вставка по 100 строк. P.S. Большие раки по 5 рублей... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:41 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Zzz79 пропущено... он отправляет порциями файл- как еще Ну а для взаимодействия двух систем какая разнциа. 100 вставок по 1 строке. Или 1 вставка по 100 строк. P.S. Большие раки по 5 рублей... Снаружи никакой. А прогерам оверхед. В ТЗ должно быть записано какой максимальный размера файл поддерживает код. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 10:51 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt Kachalov чем это написал хз кто в википедии Вот это пренебрежительное отношение к вики никогда не понимал. Там вообще-то источники есть со ссылками. И типа никто из тысяч разработчиков не спохватился не бросил исправление. Ну-ну. - так скажите кто написал статью в вики? давно он с JPA знаком? а хибер когда впервые увидел? Все это напоминает рассказы современных школьников о жизни в СССР. Еще раз сошлюсь на источник (состав авторов и их регалии есть в предисловии) Persistence in the Enterprise: A Guide to Persistence Technologies ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 11:05 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Там с размером файла вобщем не связано. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 11:12 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Там с размером файла вобщем не связано. Бъёт на куски нижний системный уровень/транспорт. Прикладной ли уровень в его рассказах выше хз. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 11:18 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 mayton пропущено... А расскажи как ты себе сам смысл батча понимаешь? Может они были правы да ты просто не про то думал. он отправляет порциями файл- как еще Вот главная идея в двух словах описана на сайте oracle.com https://docs.oracle.com/cd/E11882_01/java.112/e16548/oraperf.htm#JJDBC28752 Update Batching You can reduce the number of round-trips to the database, thereby improving application performance, by grouping multiple UPDATE, DELETE, or INSERT statements into a single batch and having the whole batch sent to the database and processed in one trip. This is referred to as update batching. Эта оптимизация описана в рамках OracleJDBC но ее поддерживают и многие другие DBMS. Основной поинт - оптимизация сетевых взаимодействий. Тоесть минимизация round-trips. Путешествия сетевых пакетов туда и обратно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 11:19 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Kachalov - так скажите кто написал статью в вики? давно он с JPA знаком? а хибер когда впервые увидел? Все это напоминает рассказы современных школьников о жизни в СССР. Кто "он"? Kachalov Еще раз сошлюсь на источник (состав авторов и их регалии есть в предисловии) Persistence in the Enterprise: A Guide to Persistence Technologie Не вижу противоречий. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 14:42 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
hVostt Кто "он"? - Вы же не думаете что статьи в Вики самозачинаются? есть автор и у статьи и у фрагмента текста (при желании проявить интеллект, можно в историю редактирования страницы заглянуть - Вы же не теоретик и Вам приходилось писать в Вики?). Вот сейчас я могу зайти отредактировать статью и написать там любую х..ню и около месяца или больше (в зависимости от популярности темы) Вы и разнообразные нубы будут на нее любоваться воспринимая за истину в последней инстанции hVostt Не вижу противоречий. - не вижу в Вики слова JDO, Kodo и TopLink, но убеждать сторонников плоскоземелья в том что Земля круглая - себе дороже. А если говорить конкретно про JPA и Hibernate (какого года там рождения первый коммит?), то припоминается что запросы на птичьем языке были еще CMP-компонентах в EJB 1 (а это 1998 год) и что Apache Cayenne (он тогда иначе назывался) появился одновременно с хибером, но конечно это ничего не значит - гениальные разработчики хибера свалились из параллельной вселенной и ничего об этом не знали. Ну и до рождества Христова не было других религий и монотеизма. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 16:37 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Мне кажется что информационна ценность wiki - в ссылках на статьи и литературу которая прикреплена внизу. Кроме того я часто замечал что русскоязычная wiki является унылым переводом англоязычной с точностью до исходников. Тоесть не было творческого перосмысления а кто-то просто "делал план" по заполнению контента. Это очень сильно снижает ценность русской вики как источника информации. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.06.2020, 17:17 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Хибер хорош пока никто не пытается в context прогрузить всю базу ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 19:07 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 вопрос в том зачем она тебе эта производительность? что такое производительность в рамках облачных технологий и современных серверов ? и нагрузочные тесты ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 19:12 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79 а еще у нас по моему мнению ипанутый кэш) что такое кэш в нормальном его понимании- запрос был - положили в кэш у нас же на старте сервиса в кэш грузятся все справочники и не важно - потребуется ли оттуда что или нет я честно поначалу не понимал так как опыта не было ,а сейчас я вижу при загрузке сервиса эти километровые логи и не пойму накуя? в чем проблема сделать запрос в бд и положить в кэш ,вместо того чтобы грузить в кэш всю базу мб я чего то не понимаю конечно) Когда от системы требуется быстрый отклик (типичный случай для систем опер-дня) то пускай они стартуют хоть целый час. Не жалко с 7.00 до 8.00 кеши прогревать. А если от этой процедуры отказаться - то очевидно что бизнес-процессы будут каждый раз делать интеракцию с БД для каждого нового значения в справочнике. Какой кейс тут удачен - я не знаю. Это надо тебе говорить с твоим тех-лидом и с бизнесом. Во всех случаях - пожелания бизнеса должны быть в приоритете. Эти прекрасные господа тебе платят деньги - значит они должны быть happy. Если они - не happy - то ты моменьтально почувствуешь это на кармане. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 20:22 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Когда от системы требуется быстрый отклик (типичный случай для систем опер-дня) то пускай они стартуют хоть целый час. Не жалко с 7.00 до 8.00 кеши прогревать. А если от этой процедуры отказаться - то очевидно что бизнес-процессы будут каждый раз делать интеракцию с БД для каждого нового значения в справочнике ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 22:34 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
Zzz79, Есть вполне конкретные метрики ЭФФЕКТИВНОСТИ КЕША. Можешь изучит вопрос и доказать, что всё грузить в память неэффективно https://studfile.net/preview/2282202/page:7/ Но вполне может быть, так как памяти навалом, это не доказать. Так как все справочники влазят в память. Кеш хорош когда нет резиновой памяти. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 22:36 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
вадя mayton Когда от системы требуется быстрый отклик (типичный случай для систем опер-дня) то пускай они стартуют хоть целый час. Не жалко с 7.00 до 8.00 кеши прогревать. А если от этой процедуры отказаться - то очевидно что бизнес-процессы будут каждый раз делать интеракцию с БД для каждого нового значения в справочнике Тебе обязательно надо поговорить с ребятами из Сбербанка. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 22:36 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
вадя, Хорошая нагрузка это сколько в граммах? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 22:40 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Тебе обязательно надо поговорить с ребятами из Сбербанка. PetroNotC Sharp Хорошая нагрузка это сколько в граммах? устроит? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 22:47 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
вадя mayton Тебе обязательно надо поговорить с ребятами из Сбербанка. Да... Пожалуй не говори. Я боюсь что они увидят твой "серверный рендеринг" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 22:49 |
|
Удаление записей соответствующих условию из БД в Hibernate
|
|||
---|---|---|---|
#18+
mayton Да... Пожалуй не говори. Я боюсь что они увидят твой "серверный рендеринг" ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2020, 22:54 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120761]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
162ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 274ms |
0 / 0 |