Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7 8      [все]
 Удаление записей соответствующих условию из БД в Hibernate  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 294
Здравствуйте!

Пытаюсь из БД удалить записи соответствующие условию, с помощью запроса "createQuery" Hibernate:

Query q=sessionFactory.getCurrentSession().createQuery("DELETE Predictionlevelwater WHERE postId.namePost=:namePost", Predictionlevelwater.class);
q.setParameter("namePost", namePost);
q.executeUpdate();


На что он мне отвечает, что нельзя делать запросы на удаление/обновление.
автор
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 июн 20, 15:53
21 июн 20, 15:54    [22154609]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 294
Vlad__i__mir, пробовал делать так:
String namePost="Оск001";
Query q=sessionFactory.getCurrentSession().createQuery("DELETE Predictionlevelwater WHERE postId.namePost=:"+namePost);
q.executeUpdate();

Выдает исключение
автор
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 июн 20, 16:16    [22154612]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 294
Vlad__i__mir, ещё пробовал такой вариант:

Query q=sessionFactory.getCurrentSession().createQuery("DELETE FROM Predictionlevelwater e WHERE postId.namePost=:namePost");
q.setParameter("namePost", namePost);
q.executeUpdate();


автор
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 июн 20, 16:31    [22154615]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Vlad__i__mir,

Сделайте пример из сети или книги. Что вы гадаете наобум?
21 июн 20, 16:34    [22154617]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Vlad__i__mir,

вы одновременно методом тыка учитесь и запросы писать и Hibernate?
ИМХО стоит метод тыка заменить на чтение документации.

Если namePost - это поле в таблице Predictionlevelwater, то так:
Query q = sessionFactory.getCurrentSession().createQuery("DELETE FROM Predictionlevelwater WHERE namePost = :namePost");
q.setParameter("namePost", namePost);
q.executeUpdate();
21 июн 20, 16:37    [22154618]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 294
Дмитрий Мух
Vlad__i__mir,

вы одновременно методом тыка учитесь и запросы писать и Hibernate?
ИМХО стоит метод тыка заменить на чтение документации.

Если namePost - это поле в таблице Predictionlevelwater, то так:
Query q = sessionFactory.getCurrentSession().createQuery("DELETE FROM Predictionlevelwater WHERE namePost = :namePost");
q.setParameter("namePost", namePost);
q.executeUpdate();


namePost - это свойство у объекта, который является значением поля в таблице 22154615
21 июн 20, 16:47    [22154622]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 294
PetroNotC Sharp, везде примеры проще, без условия с ссылкой на свойство объекта, хранящегося в таблицк
21 июн 20, 16:49    [22154623]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Vlad__i__mir
Дмитрий Мух
Vlad__i__mir,

вы одновременно методом тыка учитесь и запросы писать и Hibernate?
ИМХО стоит метод тыка заменить на чтение документации.

Если namePost - это поле в таблице Predictionlevelwater, то так:
Query q = sessionFactory.getCurrentSession().createQuery("DELETE FROM Predictionlevelwater WHERE namePost = :namePost");
q.setParameter("namePost", namePost);
q.executeUpdate();



namePost - это свойство у объекта, который является значением поля в таблице 22154615

У вас объект является значением поля в таблице? Вы ничего не путаете?

Можете дать описание таблицы, её назначение и сформулировать то, какие данные оттуда необходимо удалить.

Тогда мы сначала попробуем написать соответсвующий SQL запрос, а потом уже вызвать его средствами Hibernate.
21 июн 20, 17:21    [22154635]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
xerxf
Member

Откуда:
Сообщений: 128
Vlad__i__mir,

Если вы пишете запрос - то вы пишете его к базе данных. Которая знать не знает ни про какие объекты и поля. Это во первых.
А во вторых - а зачем вы вообще этот запрос пишете? Может проще использовать методы репозитория?

https://docs.spring.io/spring-data/jpa/docs/1.5.0.RELEASE/reference/html/jpa.repositories.html
21 июн 20, 17:25    [22154637]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 294
Дмитрий Мух,
В таблице Predictionlevelwater есть поле - это поле FK, FK ссылается на таблицу Post, у которой есть поле namePost.

Поэтому я в запросе и ссылался через точку, как бы обращаясь к полю объекта:
автор
"DELETE FROM Predictionlevelwater e WHERE postId.namePost=:namePost"
21 июн 20, 17:27    [22154639]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Vlad__i__mir,
Если FK, то это число.
Если удаляете не по нему а имени то должен быть join.
ОТЛАЖИВАЙТЕ ЗАПРОС В ПРОГЕ ДЛЯ БД. Без java.
21 июн 20, 18:12    [22154649]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Vlad__i__mir,
2. Если немного элементов то можно удалять в цикле по коллекции. Ведь орм и хибер все таки.
21 июн 20, 18:14    [22154651]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 294
PetroNotC Sharp,

Сделал так:
1) нашел объект postId
2) выбрал из таблицы все записи с данным объектом
Query query=sessionFactory.getCurrentSession().createQuery("from Predictionlevelwater where postId.idPost=:idPost",Predictionlevelwater.class);
        query.setParameter("idPost", idPost);
        List<Predictionlevelwater> predictWaterList=query.list();
        return  predictWaterList;

3) с помощью цикла удаляю все объекты:
sessionFactory.getCurrentSession().remove(predictionlevelwater);


Конечно с точки зрения оптимальности алгоритм желает лучшего, но работает )
21 июн 20, 18:20    [22154653]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Vlad__i__mir,
Есть рационально и есть оптимально.
Удачи!
21 июн 20, 18:24    [22154654]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Vlad__i__mir
Дмитрий Мух,
В таблице Predictionlevelwater есть поле - это поле FK, FK ссылается на таблицу Post, у которой есть поле namePost.

Поэтому я в запросе и ссылался через точку, как бы обращаясь к полю объекта:
автор
"DELETE FROM Predictionlevelwater e WHERE postId.namePost=:namePost"

Из первого сообщения вы уже поняли, что Hibernate не умеет использовать информацию о типе (Predictionlevelwater.class) для построения правильного запроса DELETE.
То есть в вашем случае он ничего не знает о таблице Post и о том, что Predictionlevelwater на неё ссылается.

И вам самому сначала надо написать правильный запрос DELETE и потом вызвать его в коде Java с нужными параметрами.

Варианты:
DELETE W FROM Predictionlevelwater W JOIN Post P ON P.id = W.postId AND P.namePost = :namePost

DELETE FROM Predictionlevelwater WHERE postId IN (SELECT id FROM Post WHERE namePost = :namePost)

DELETE FROM Predictionlevelwater W WHERE EXISTS (SELECT 1 FROM Post P WHERE P.id = W.postId AND P.namePost = :namePost)
21 июн 20, 18:27    [22154655]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Vlad__i__mir
PetroNotC Sharp,

Сделал так:
1) нашел объект postId
2) выбрал из таблицы все записи с данным объектом
Query query=sessionFactory.getCurrentSession().createQuery("from Predictionlevelwater where postId.idPost=:idPost",Predictionlevelwater.class);
        query.setParameter("idPost", idPost);
        List<Predictionlevelwater> predictWaterList=query.list();
        return  predictWaterList;


3) с помощью цикла удаляю все объекты:
sessionFactory.getCurrentSession().remove(predictionlevelwater);



Конечно с точки зрения оптимальности алгоритм желает лучшего, но работает )

Хорошо, что вы нашли решение. И всё же я бы на вашем месте подтянул знания по SQL и переписал без циклов, одним запросом.
21 июн 20, 18:34    [22154656]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 294
Дмитрий Мух, спасибо! 1-ый и 2-ой вариант мне в принципе понятен, JOIN пользоваться умею
Попробую ваш вариант.
21 июн 20, 18:53    [22154660]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1492
Vlad__i__mir
Конечно с точки зрения оптимальности алгоритм желает лучшего, но работает )

Да, у меня код типа такого и всё встаёт раком. Ява с гибернейтом уже где-то год в процессе выкидывания.
22 июн 20, 07:00    [22154874]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
crutchmaster
Да, у меня код типа такого и всё встаёт раком. Ява с гибернейтом уже где-то год в процессе выкидывания.


Из дотнетов порт хибера уже давно повыпилили, а в джаве смотрю процесс ещё идёт )
22 июн 20, 07:59    [22154885]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
hVostt,
Неужели один EF остался. Странно.
22 июн 20, 08:11    [22154891]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1492
hVostt,

Там томик такой хороший по хиберу, я так и не осилил. Шоб просто работало, надо изучить этот талмуд. Но это не факт. Да да, батхёрт неосилятора.

Сообщение было отредактировано: 22 июн 20, 09:32
22 июн 20, 09:34    [22154930]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
PetroNotC Sharp
hVostt,
Неужели один EF остался. Странно.


Почему же, ORM-ов хватает. Всяких разных. Просто для NHibernate в своё время альтернатив не было, затем их запилили в нужном количестве, а хибер оказался избыточно сложным и неповоротливым поделием.


crutchmaster
hVostt,

Там томик такой хороший по хиберу, я так и не осилил. Шоб просто работало, надо изучить этот талмуд. Но это не факт. Да да, батхёрт неосилятора.


Просто хибер это убер-вундервафля :) Видимо и джаве тож самое.
22 июн 20, 13:02    [22155099]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Главное чтоб из стека SpringData его убрали.
22 июн 20, 13:19    [22155107]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
hVostt,
Дак дай хоть пару имен то.
Мы не в курсе тут, что там за горизонтом, в Net уже нового.
22 июн 20, 13:52    [22155131]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
PetroNotC Sharp
hVostt,
Дак дай хоть пару имен то.
Мы не в курсе тут, что там за горизонтом, в Net уже нового.


EF
Dapper
PetaPoco
LiteDB
SqlSugar
FreeSql
ServiceStack.OrmLite
Insight.Database
RepoDb
MicroLite
...
22 июн 20, 14:21    [22155164]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
hVostt
Просто хибер это убер-вундервафля :) Видимо и джаве тож самое.

- мне больше EclipseLink нравится
22 июн 20, 17:03    [22155296]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Kachalov
hVostt
Просто хибер это убер-вундервафля :) Видимо и джаве тож самое.

- мне больше EclipseLink нравится

О. А можете дать нам развернутый анализ по Hiber/EclipseLink?

В основном интересует простота исопльзования. Т.к. Хибер не может
похвастаться простотой.
22 июн 20, 17:22    [22155310]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
mayton
В основном интересует простота исопльзования. Т.к. Хибер не может
похвастаться простотой.

- в смысле простоты монопенисуарно, хотя хибер, действительно как то поархаичней (больше возможностей - больше гемороев). Основной + от ЭклипсЛинка (на мой взгляд) - он лучше соответствует спецификации JPA
22 июн 20, 17:57    [22155334]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1492
mayton,

Так там особо альтернатив и нет. Mybatis, jooq и jdbi и то это не орм, а маперы.

Сообщение было отредактировано: 22 июн 20, 18:06
22 июн 20, 18:08    [22155343]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Oracle TopLink?
22 июн 20, 18:10    [22155344]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
стока маститых прогеров в одном месте собралось,которые объеденены ненавистью к хиберу))

проблема автора решается в две строчки кода
делается сервис класс
в который ты инжектишь имплементации репозиториев этих таблиц
далее ты пишешь простой метод
в первой части которого ты дергаешь репозитооий таблицы пост и выгребаешь все методом findByNamePost
вторая чать метода deleteBy....( тут FK)
дергаешь нужное поле с первой таблицы - вставлеяешь в делет второй


непонятно что тут за базар развели))
22 июн 20, 18:13    [22155347]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1492
Zzz79,

Привет, Стас.

Да всё работает, но дело в том, что оно при этом отправляет кучу запросов с бд. В этом его проблема. Да, как-то можно сделать в несколько, но это неоправданно сложно для гибернейт-нуба.

Сообщение было отредактировано: 22 июн 20, 18:14
22 июн 20, 18:15    [22155348]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Zzz79,

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

Сообщение было отредактировано: 22 июн 20, 18:19
22 июн 20, 18:19    [22155352]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
И плодить в репозитории методы findByЧтоТоТам - это моветон :)
22 июн 20, 18:26    [22155354]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Некоторые вещи Hibernate не умеет делать. Или по крайней мере мне не получилось их реализовать
на уровне HQL/Criteria. Например в некоторых задачах обогащения справочников мне нужна была
команда UPSERT(это два в одном UPDATE/INSERT) в 1 сетевой раундтрип.

И в Oracle и в PG это можно сделать. В первом - с использованием MERGE во втором INSERT-ONCONFLICT-UPDATE.

Компромиссы (попробовать-словить-эксцепшен-повторить) меня не устраивали. Это был highload и там
загрузка справочников должна проходить быстро.
22 июн 20, 18:26    [22155355]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
crutchmaster
Zzz79,

Привет, Стас.

Да всё работает, но дело в том, что оно при этом отправляет кучу запросов с бд. В этом его проблема. Да, как-то можно сделать в несколько, но это неоправданно сложно для гибернейт-нуба.


сейчас нет такого понятия куча запросов в бд- 2020 год- все в облаках давно ,говорю потому что знаю
у нас супер нагруженная распределенная система состоящая из более чем 100+ отдельных сервисов,каждый со своей бд и тд
30/70 хибер/жук

более млн уникальных запросов в день - все работает

пс.проблема этого спора ,что ребят учили по реляционной модели ,все плоско,беку не хвататет железа и тд
сейчас все немного изменилось- железа оверхед,появились клевые jms все что осталось разрабу это имплементить нужные интерфейсы и не жужжать
22 июн 20, 18:28    [22155357]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Zzz79
у нас супер нагруженная распределенная система...

более млн уникальных запросов в день - все работает

12 запросов в секунду не тянет на супер нагруженную систему
22 июн 20, 18:33    [22155360]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Напомни jOOQ это платный продукт. Верно?
22 июн 20, 18:33    [22155361]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Некоторые вещи Hibernate не умеет делать. Или по крайней мере мне не получилось их реализовать
на уровне HQL/Criteria. Например в некоторых задачах обогащения справочников мне нужна была
команда UPSERT(это два в одном UPDATE/INSERT) в 1 сетевой раундтрип.

И в Oracle и в PG это можно сделать. В первом - с использованием MERGE во втором INSERT-ONCONFLICT-UPDATE.

Компромиссы (попробовать-словить-эксцепшен-повторить) меня не устраивали. Это был highload и там
загрузка справочников должна проходить быстро.

все это слишком сложно и не нужно в современных реалиях

я тебе говорю огромная банковская система целиком сидит на хибер/жук и отлично работает

никто не будет сейчас рабоать с чистым jdbc это прошлый век- так как мы вот делали миграцию с oracle на постгресс и если бы это был jdbc это бы заняло 10050505050 человекодней

а так только пару конфигов сменили)
22 июн 20, 18:36    [22155365]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
Дмитрий Мух
Zzz79
у нас супер нагруженная распределенная система...

более млн уникальных запросов в день - все работает

12 запросов в секунду не тянет на супер нагруженную систему

это был проект не касающийся моей текущей работы)
22 июн 20, 18:37    [22155366]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Напомни jOOQ это платный продукт. Верно?

нет для постгреса)
22 июн 20, 18:38    [22155367]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Zzz79
Дмитрий Мух
пропущено...

12 запросов в секунду не тянет на супер нагруженную систему

это был проект не касающийся моей текущей работы)

wat?
22 июн 20, 18:40    [22155369]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Zzz79,

Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :)
22 июн 20, 18:40    [22155370]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
Дмитрий Мух
Zzz79
пропущено...

это был проект не касающийся моей текущей работы)

wat?

What did you mean then ?
22 июн 20, 18:41    [22155372]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
hVostt
Zzz79,

Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :)

до сих пор на плаву)
в чем проблема использовать flyway?
22 июн 20, 18:42    [22155373]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Zzz79
mayton
Напомни jOOQ это платный продукт. Верно?

нет для постгреса)

Я пытался приспособить для толстого бизнеса (дата аналитика на MSSQL) jOOQ. У него хитрая лицензия. Похожа
на развод для лохов. Вобщем для Oracle/MSSQL (основной дорогой сегмент) надо будет платить.
22 июн 20, 18:44    [22155376]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Zzz79
Дмитрий Мух
пропущено...

wat?

What did you mean then ?

12 запросов в секунду не тянет на супер нагруженную систему

Или скажу иначе: не надо заливать нам чему нас учили и как обстоят дела сейчас
22 июн 20, 18:44    [22155377]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Zzz79
hVostt
Zzz79,

Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :)

до сих пор на плаву)
в чем проблема использовать flyway?


Так вы же писали, что мигрировали с одной БД на другую, заменив коннекшен стринг.
При чём в таком сценарии флайвей? )

На плаву означает, что технология является одной из предпочтительных для новых проектов.
22 июн 20, 18:45    [22155378]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
Дмитрий Мух
И плодить в репозитории методы findByЧтоТоТам - это моветон :)

зачем плодить -пиши только то что тебе надо

ну или жук тогда,если на постгресе сидите

жук вообще классный и может весь функционал по сути бдшный,но надо уметь пользоваться
22 июн 20, 18:45    [22155379]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
Дмитрий Мух
Zzz79
пропущено...

What did you mean then ?

12 запросов в секунду не тянет на супер нагруженную систему

Или скажу иначе: не надо заливать нам чему нас учили и как обстоят дела сейчас

про какие 12 запросов ты говоришь?) если в систему сдо мою- там стоит лимит запросов в который ты и уперся)

надеюсь ты не считаешь что у хибера потолок 12 запросов в секунду иначе я бы задумался кто там тебе платит 200+ в месяц))
22 июн 20, 18:48    [22155381]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Zzz79
Дмитрий Мух
И плодить в репозитории методы findByЧтоТоТам - это моветон :)

зачем плодить -пиши только то что тебе надо

Моветон так писать методы в репозитории, да и не по SOLID.
Открой для себя шаблон Спецификация.
22 июн 20, 18:49    [22155385]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
Zzz79,

Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :)

Миграция - это класс ETL запросов. Массовая загрузка. Миллиарды datarows. Streamable.

Hiber - OLTP. Точечные запросы. Работа с формочками. Тело запроса - вариативно. Может
динамически конструироваться. Скорость - небольшая. Соотвествует скорости ввода данных
всеми операторами системы.

Поэтому хибер никогда не будет поддерживать миграции. Другой класс ибо.
22 июн 20, 18:49    [22155386]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Zzz79
пропущено...

нет для постгреса)

Я пытался приспособить для толстого бизнеса (дата аналитика на MSSQL) jOOQ. У него хитрая лицензия. Похожа
на развод для лохов. Вобщем для Oracle/MSSQL (основной дорогой сегмент) надо будет платить.

основной сегмент сейчас Postrgres ,по крайне мере значительная часть РФ банков на нем
22 июн 20, 18:49    [22155387]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
hVostt
Zzz79,

Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :)

Миграция - это класс ETL запросов. Массовая загрузка. Миллиарды datarows. Streamable.

Hiber - OLTP. Точечные запросы. Работа с формочками. Тело запроса - вариативно. Может
динамически конструироваться. Скорость - небольшая. Соотвествует скорости ввода данных
всеми операторами системы.

Поэтому хибер никогда не будет поддерживать миграции. Другой класс ибо.


У хибера знания модели данных есть? Есть. Поддерживать изменения в модели на основе снепшотов можно? Можно :) Значит хибер мог бы, да не осилил. Итак слишком толстый
22 июн 20, 18:51    [22155389]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Zzz79
Дмитрий Мух
пропущено...

12 запросов в секунду не тянет на супер нагруженную систему

Или скажу иначе: не надо заливать нам чему нас учили и как обстоят дела сейчас

про какие 12 запросов ты говоришь?

Не тупи. Твои "более млн уникальных запросов в день" - это где-то 12 запросов в секунду.

Не тянет на супер нагруженную систему.
22 июн 20, 18:51    [22155391]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Zzz79
mayton
пропущено...

Я пытался приспособить для толстого бизнеса (дата аналитика на MSSQL) jOOQ. У него хитрая лицензия. Похожа
на развод для лохов. Вобщем для Oracle/MSSQL (основной дорогой сегмент) надо будет платить.

основной сегмент сейчас Postrgres ,по крайне мере значительная часть РФ банков на нем

Импорто-замещение?

Мне интересно как они с partitioning поступили. Oracle поддерживал PK+сложный partitionning по двум измерениям
(матрица типа). PG еле-еле поддерживает только одно из двух.
22 июн 20, 18:52    [22155393]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Дмитрий Мух
Zzz79
пропущено...

зачем плодить -пиши только то что тебе надо

Моветон так писать методы в репозитории, да и не по SOLID.
Открой для себя шаблон Спецификация.


А всё равно продолжают так писать... До сих пор :-/
22 июн 20, 18:52    [22155395]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
mayton
hVostt
Zzz79,

Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :)

Миграция - это класс ETL запросов. Массовая загрузка. Миллиарды datarows. Streamable.

hVostt пишет про миграции схемы/структуры БД.
22 июн 20, 18:53    [22155396]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
Дмитрий Мух
Zzz79
пропущено...

зачем плодить -пиши только то что тебе надо

Моветон так писать методы в репозитории, да и не по SOLID.
Открой для себя шаблон Спецификация.

что значит моветон)
у тебя есть репозиторий и тебе нужно с ним работать) как бы это нормально написать методы ,которые тебе нужны - они что кушать чтоли просят?)

моветон это юзать ломбок без понимания того ,что там генерируется - вот тут я согласен,а хибер методы пока их не дергали - как бы и никого не напрягают)
22 июн 20, 18:53    [22155397]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Zzz79
как бы это нормально написать методы ,которые тебе нужны - они что кушать чтоли просят?)


Хех, вот именно, что просят. И кушать просят очень много :)
22 июн 20, 18:55    [22155399]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Zzz79
Дмитрий Мух
пропущено...

Моветон так писать методы в репозитории, да и не по SOLID.
Открой для себя шаблон Спецификация.

что значит моветон)
у тебя есть репозиторий и тебе нужно с ним работать) как бы это нормально написать методы ,которые тебе нужны - они что кушать чтоли просят?)

моветон это юзать ломбок без понимания того ,что там генерируется - вот тут я согласен,а хибер методы пока их не дергали - как бы и никого не напрягают)

Нет, Стас, это реально моветон. Повторю: открой для себя шаблон Спецификация.
Ну и про SOLID почитай.
22 июн 20, 18:56    [22155400]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Дмитрий Мух
mayton
пропущено...

Миграция - это класс ETL запросов. Массовая загрузка. Миллиарды datarows. Streamable.

hVostt пишет про миграции схемы/структуры БД.

А ну у всех толстых DBMS есть свой Migration Guide.
И все равно 100% автоматизация невозможна. Где-то придется вручную что-то делать.

Да и нечасто такой праздник.
22 июн 20, 18:58    [22155403]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
А ну у всех толстых DBMS есть свой Migration Guide.
И все равно 100% автоматизация невозможна. Где-то придется вручную что-то делать.

Да и нечасто такой праздник.


Это зависит от. Некоторые людишки так и норовят влезть руками куда-нибудь, типа щас быстрее так, а потом всё идёт по п..е ))
22 июн 20, 19:00    [22155404]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Я своими руками смигрировал толстую CRM c MS-SQL на Oracle. И это было 90 ручная работа и скриптинг.

Да и нельзя там было автоматизировать. Там надо было хранимки просмотреть глазами и переосмыслить.
Сильно сомневаюсь чтоб хоть какой-то хибернейт это сделал. Что там... ИИ штоли?
22 июн 20, 19:02    [22155410]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
Дмитрий Мух
Zzz79
пропущено...

что значит моветон)
у тебя есть репозиторий и тебе нужно с ним работать) как бы это нормально написать методы ,которые тебе нужны - они что кушать чтоли просят?)

моветон это юзать ломбок без понимания того ,что там генерируется - вот тут я согласен,а хибер методы пока их не дергали - как бы и никого не напрягают)

Нет, Стас, это реально моветон. Повторю: открой для себя шаблон Спецификация.
Ну и про SOLID почитай.

у нас до сих пор штампуют,но я не знал что по другому можно -почитаю спасибо,хотя я щас на жуке 99% времени
солид я читал - звучит красиво - но все клали на это))
22 июн 20, 19:03    [22155412]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
mayton
Дмитрий Мух
пропущено...

hVostt пишет про миграции схемы/структуры БД.

А ну у всех толстых DBMS есть свой Migration Guide.
И все равно 100% автоматизация невозможна. Где-то придется вручную что-то делать.

Да и нечасто такой праздник.

Так, давайте ещё проще. Речь про добавление новых таблиц, или там новых колонок в таблицы и т.п.

Лично у нас практически каждый релиз на базы накатываются какие-то миграции.
А релизы основного приложения у нас раз в месяц. Отдельных сервисов итого чаще.
22 июн 20, 19:04    [22155414]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Дмитрий Мух
mayton
пропущено...

А ну у всех толстых DBMS есть свой Migration Guide.
И все равно 100% автоматизация невозможна. Где-то придется вручную что-то делать.

Да и нечасто такой праздник.

Так, давайте ещё проще. Речь про добавление новых таблиц, или там новых колонок в таблицы и т.п.

Лично у нас практически каждый релиз на базы накатываются какие-то миграции.
А релизы основного приложения у нас раз в месяц. Отдельных сервисов итого чаще.

Я вот это имел в виду https://docs.oracle.com/database/121/DRDAA/toc.htm
22 июн 20, 19:09    [22155419]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
mayton
Дмитрий Мух
пропущено...

Так, давайте ещё проще. Речь про добавление новых таблиц, или там новых колонок в таблицы и т.п.

Лично у нас практически каждый релиз на базы накатываются какие-то миграции.
А релизы основного приложения у нас раз в месяц. Отдельных сервисов итого чаще.

Я вот это имел в виду https://docs.oracle.com/database/121/DRDAA/toc.htm

Я понял о чём вы.

А hVostt когда писал "Ещё бы хибер из коробки миграции БД поддерживал", то имел в виду переход базы данных от старой схемы к новой.
То есть когда мы меняем модель, добавляем в нее какие-то новые свойства или удаляем некоторые свойства.
22 июн 20, 19:17    [22155427]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Я своими руками смигрировал толстую CRM c MS-SQL на Oracle. И это было 90 ручная работа и скриптинг.

Да и нельзя там было автоматизировать. Там надо было хранимки просмотреть глазами и переосмыслить.
Сильно сомневаюсь чтоб хоть какой-то хибернейт это сделал. Что там... ИИ штоли?


Ну вот в .NET модель любой сложности на EF генерирует схему БД.
При чём для любой поддерживаемой СУБД.

Вот когда действительно можно переехать на другую СУБД практически сменой провайдера и строки соединения. На выходе готовая БД, с готовой схемой и посевом данных.

Это очень удобно. По личному опыту, переоценить данную способность очень сложно.

Плюс, хорошо помогает для интеграционных тестов в некоторых сценариях, где не используются специфичные для СУБД инструкции и запросы.
22 июн 20, 19:25    [22155433]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Дмитрий Мух
Я понял о чём вы.

А hVostt когда писал "Ещё бы хибер из коробки миграции БД поддерживал", то имел в виду переход базы данных от старой схемы к новой.
То есть когда мы меняем модель, добавляем в нее какие-то новые свойства или удаляем некоторые свойства.


Семантика слова "миграция" слишком широкая )
22 июн 20, 19:26    [22155434]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Там надо было хранимки просмотреть глазами и переосмыслить.


Собственно в том числе поэтому я обычно говорю, что хранимок лучше избегать :)
22 июн 20, 19:28    [22155435]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Zzz79
солид я читал - звучит красиво - но все клали на это))


Ни разу никто мне не ответил на простой вопрос, как можно увидеть применение SOLID в действии. Так, чтобы даже менеджер, далёкий от программирования мог заметить, что SOLID применяется на практике.

Уже сколько лет задаю этот вопрос.... похоже плохой это термин (точнее, аббревиатура), трудный для понимания.

Сообщение было отредактировано: 22 июн 20, 19:30
22 июн 20, 19:32    [22155436]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
SOLID - это философия. Как ты можешь придумать метрику
насколько один проект философичнее (философнее?) другого?

Мы даже взяв первую буквочку (S) Single-Resp уже уходим в сложные не инженерные понятия.
22 июн 20, 19:50    [22155440]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
mayton
Я своими руками смигрировал толстую CRM c MS-SQL на Oracle. И это было 90 ручная работа и скриптинг.

Да и нельзя там было автоматизировать. Там надо было хранимки просмотреть глазами и переосмыслить.
Сильно сомневаюсь чтоб хоть какой-то хибернейт это сделал. Что там... ИИ штоли?

Вот когда действительно можно переехать на другую СУБД практически сменой провайдера и строки соединения.

Ты наверное хочешь лишить нас всех работы?

Попробуй в форуме Oracle озвучить такую мысль. Только я отбегу подальше... чтоб не зацепило взрывной волной.
22 июн 20, 19:52    [22155441]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
mayton,
))
Net'чики, у них другая философия,... И планета.
22 июн 20, 20:56    [22155460]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
chpasha
Member

Откуда:
Сообщений: 9552
Zzz79
но надо уметь пользоваться

это отличный эпиграф к чему угодно


P. S. мля, вот бы тому нытику из соседнего топика хотя бы 25% Стасовой самоуверенности, мог бы горы своротить (ну или хотя бы работу найти )
22 июн 20, 21:39    [22155481]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
SOLID - это философия. Как ты можешь придумать метрику
насколько один проект философичнее (философнее?) другого?

Мы даже взяв первую буквочку (S) Single-Resp уже уходим в сложные не инженерные понятия.

это все эфимерная шляпа)я давно уже понял это что все этип принципы и шаблоны на практике никто не юзает - а в 90% случаев ты зайдя в один из крупнейших РФ банков где то увидишь ДТО в котором есть сетеры сет 1,сет2 ,сет 3 ))) и так до бесконечности)

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

ничего из этого по сути нигде не работает - все программирование индивидуальщина - причем настолько сильная ,что один и тот же участок кода можно написать миллиардом методов - и никто не заметит разницы)

вот сегодя на ревью пр у нас было
List.get(0).getSomeField

на что я отметил что это лучше сделать через

list
.stream()
.findFirst
.map(shit::getSomeField)
.orElseThrow


по сути мое решение безопасно в том числе от нулпоинтера,но это лишняя память изза стрима

где тут лушче и где ваш солид
да всем пох вообщем то)
все эти солиды на собесах и в учебниках)
22 июн 20, 21:47    [22155486]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
chpasha
Zzz79
но надо уметь пользоваться

это отличный эпиграф к чему угодно


P. S. мля, вот бы тому нытику из соседнего топика хотя бы 25% Стасовой самоуверенности, мог бы горы своротить (ну или хотя бы работу найти )


у меня не было уверенности ни в чем если честно,вот майтон не даст соврать - когда я учился ,потом я устроился на работу ,меня кинули на проект где я полгода почти плавал ,так как ничего не умел ,при чем не в плане даже джавы ,а в плане всех соопуствубщих интрументов

потому что по сути кода пишешь мало ,а вот все остальное много
jira,teamcity,bitbacket,comunda,kibana,да тот же гит откуда спулиться ,куда запушить
как задеплоить на стенд,как конфиги поменять и тд
это реально были мои пол года ада - я затрахал всех своих коллег)

и сейчас я вижу что вот эти куски джава кода которые мы вояем - это лишь малая толика приложения рабочего)

и всем пох на все эти принципы,солиды,патерны и прочее

будет отвественный за сервис чем то запарен - пропустит пр ,будет злой пр не пройдет даже если где то запятая в джава доке не такая)

вообщем теперь я понимаю почему ищут от 2 лет коммерческой разработки - там не патерны и не джава главные далеко

а вот сможешь ли ты реквест послать в комунде его отследить и понять почему упало - вот что важно
22 июн 20, 21:58    [22155493]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
Давным давно никто уже ничего с нуля не пишет -практически все что я видел - это уже что то готовое и допиливается либо просто из коробки решение со своими плюшками

тоесть современное программирование сейчас больше напоминает поддержку некую)

я не беру в расчет какие то инди проекты или халтуру с фри ланс бирж

а на основной работе творить никто не даст) есть бт - есть спеки- полет мыслей быстро прибьют))
22 июн 20, 22:04    [22155497]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Zzz79

где тут лушче и где ваш солид
да всем пох вообщем то)
все эти солиды на собесах и в учебниках)

Это на 99% "джентльменское" соглашение у вас в команде. Как вы решите - так и будет.
И тут никакой PM или бизнес не может повлиять потому что не ему этот код писать.
Это - ваше родное. Но если вы будете "плевать на пол в хате" или "срать себе под ноги"
то у вас будут внутренние конфликты. Взаимные обличения. И попытки переписать и переделать
код друг за другом. И вот чтобы этих конфликтов не было и придуманы
все эти стандарты кодирования. SOLID - это просто одна из форм. Достаточно
философская и рекомендательная.

Ни один сканер (ни Сонар ни FindBug) не детектируют SOLID.
22 июн 20, 22:07    [22155501]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Zzz79

где тут лушче и где ваш солид
да всем пох вообщем то)
все эти солиды на собесах и в учебниках)

Это на 99% "джентльменское" соглашение у вас в команде. Как вы решите - так и будет.
И тут никакой PM или бизнес не может повлиять потому что не ему этот код писать.
Это - ваше родное. Но если вы будете "плевать на пол в хате" или "срать себе под ноги"
то у вас будут внутренние конфликты. Взаимные обличения. И попытки переписать и переделать
код друг за другом. И вот чтобы этих конфликтов не было и придуманы
все эти стандарты кодирования. SOLID - это просто одна из форм. Достаточно
философская и рекомендательная.

Ни один сканер (ни Сонар ни FindBug) не детектируют SOLID.


тут видишь в чем прикол практически все современные программные продукты делают независимые друг от друга конторы ,которых может быть ,как в нашем случае более 30

из них процент англоговорящих не более 20) вот какие тут приниципы то ))

ты открывает annotation а там махмад рахат лукум и что дальше))

ну и как бы соверменное программирование на буте уже имеет почти весь набор SOLID кроме первого S

что значит один причина для изменения?) это же полная куета

сегодня мне придут два разных требвания в этом классе поменять поле и метод,причем задачи могут быть вообще из разных опер и что ?
как это при проектировании предусмотреть?

а лсп?
ну что за чушь- у меня есть дто оно долджно быть уникально - с какого хрена оно должно быть чем заменяемо?

про доступность учитвая рефлексию вообще бред какой то

а то что приложение должно быть расширяемо все и так знают ,а не знают - бизнес напомнит
22 июн 20, 22:25    [22155515]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Я не понимаю к чему ты клонишь. Не хочешь соблюдать солид - не соблюдай.
Пиши как бог даст. Только выложи коллегам на code-review и внимательно
слушай что они говорят.
22 июн 20, 22:32    [22155521]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Я не понимаю к чему ты клонишь. Не хочешь соблюдать солид - не соблюдай.
Пиши как бог даст. Только выложи коллегам на code-review и внимательно
слушай что они говорят.

я клоню к тому что это шляпа и профанация)

как у класса может быть только одна причина для изменений?
там есть поля и есть методы
предположим в рамках одной задачи мы меняем одно поле с float на double
и в рамках второй задачи мы меняем другое поле с Integer на String

да и такое бывает - изменились бт

что дальше? солид не бьется - увольняемся и прыгам с моста?))

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

2й принцип разбивается о рефлексию -мне пох что там закрыто -я беру объект класса и беру что мне надо и модифицирую как мне надо)

3й принцип есть следствие ООП - кто его осилил и так это знает

4й принцип из той же оперы - люди дышите или умрете)

5й принцип тоже самое - базовое ООП

тоесть по русски солид звучит так- свышь ты это сделай класс с одним полем( второе нельзя ,иначе принцип нарушится)))
сделай там что то приватным - нахуа?непонятно кому надо возьмет что надо
и далее просто соблюдай ООП базисы)))
22 июн 20, 23:22    [22155567]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Zzz79

2й принцип разбивается о рефлексию -мне пох что там закрыто -я беру объект класса и беру что мне надо и модифицирую как мне надо)

Рефлексия нарушает более базовые постулаты. В частности инкапсуляцию. Я в форуме много раз это говорил
и уже сорвал голос. Это очень серъезное нарушение и Кент Бек сейчас скрипит зубами и изрыгает страшные проклятия
читая наш топик.

Но я думаю что когда Java9/modules войдут в обиход - то рефлексию чуть-суть прибьют ближе к земле.
22 июн 20, 23:31    [22155570]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Zzz79

тоесть по русски солид звучит так- свышь ты это сделай класс с одним полем( второе нельзя ,иначе принцип нарушится)))
сделай там что то приватным - нахуа?непонятно кому надо возьмет что надо
и далее просто соблюдай ООП базисы)))

Single-Resp там речь идет не о том что тебе надо сделать 1 поле. А просто о том что
ты решаешь только одну маленькую бизнес операцию. Например есть SimpleDateFormatter.
Он - обеспечивает конверсию дат. Хотя он внутри себя может содержать тыщу полей.
Его респонсибилити - одна. FileInputStream - обеспечивает файловый хендлер на чтение.
Тоже одна отвественность. И если тебе надо компоновать все файлы с датой старше прошлого
года то ты компонуешь SimpleDateForm и FileInputStream. Они вместе решат эту комплексную задачу.
22 июн 20, 23:35    [22155571]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Zzz79

тоесть по русски солид звучит так- свышь ты это сделай класс с одним полем( второе нельзя ,иначе принцип нарушится)))
сделай там что то приватным - нахуа?непонятно кому надо возьмет что надо
и далее просто соблюдай ООП базисы)))

Single-Resp там речь идет не о том что тебе надо сделать 1 поле. А просто о том что
ты решаешь только одну маленькую бизнес операцию. Например есть SimpleDateFormatter.
Он - обеспечивает конверсию дат. Хотя он внутри себя может содержать тыщу полей.
Его респонсибилити - одна. FileInputStream - обеспечивает файловый хендлер на чтение.
Тоже одна отвественность. И если тебе надо компоновать все файлы с датой старше прошлого
года то ты компонуешь SimpleDateForm и FileInputStream. Они вместе решат эту комплексную задачу.

это твоя интерпритация
на самом деле ты знаешь что там написано)
и например у меня есть куча классов которые делают схожие задачи но для разных процессов

тот же батч

зачем мне его разделять на 100500 классов?


там есть херова тонна методов под каждый процесс


не майтон солид устарел давно - даже по тому примеру что ты привел)))
22 июн 20, 23:45    [22155580]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
SOLID - это философия. Как ты можешь придумать метрику
насколько один проект философичнее (философнее?) другого?

Мы даже взяв первую буквочку (S) Single-Resp уже уходим в сложные не инженерные понятия.


Никакая это не философия :)
Чем S не инженерное понятие?
S легко поддаётся метрике, например, количество тестов на юнит.
23 июн 20, 05:20    [22155627]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
hVostt
пропущено...

Вот когда действительно можно переехать на другую СУБД практически сменой провайдера и строки соединения.

Ты наверное хочешь лишить нас всех работы?

Попробуй в форуме Oracle озвучить такую мысль. Только я отбегу подальше... чтоб не зацепило взрывной волной.


Это на любом форуме любой DBMS тебя распнут за упоминание ORM :)
Но это лишь показатель привязанности к определённым не самым эффективным, но при этом горячо любимым подходам к разработке.
Ну хочется людям вручную делать то, что легко за них делает компьютер, щто поделаешь.
23 июн 20, 05:22    [22155628]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Zzz79
это все эфимерная шляпа)я давно уже понял это что все этип принципы и шаблоны на практике никто не юзает - а в 90% случаев ты зайдя в один из крупнейших РФ банков где то увидишь ДТО в котором есть сетеры сет 1,сет2 ,сет 3 ))) и так до бесконечности)


От того, что большая часть населения не может 2+2 сложить вовсе не означает, что математика это блажь для избранных и штука эфемерная.
23 июн 20, 05:23    [22155629]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Ни один сканер (ни Сонар ни FindBug) не детектируют SOLID.


Ох, даже здесь наблюдаются трудности с тем, чтобы сказать -- как всё же реально использовать SOLID на практике. А ведь ответ на поверхности...
23 июн 20, 05:24    [22155630]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Только выложи коллегам на code-review и внимательно
слушай что они говорят.


Вооо... :)
23 июн 20, 05:24    [22155632]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5395
Zzz79

это твоя интерпритация
на самом деле ты знаешь что там написано)
и например у меня есть куча классов которые делают схожие задачи но для разных процессов

тот же батч

зачем мне его разделять на 100500 классов?


там есть херова тонна методов под каждый процесс


не майтон солид устарел давно - даже по тому примеру что ты привел)))


Э-э-э вообще-то Single-Responsibilty как раз про это.
Т.е. дизайн приложения и классов должен быть спроектирован так, что бы каждый класс отвечал за одно действие.
А когда у вас куча классов делает одно и то же... То что-то здесь не так.
Т.к. как раз ответственность размазана за какие-то действия размазана м/у этими классами.
23 июн 20, 08:03    [22155670]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
mayton
SOLID - это философия. Как ты можешь придумать метрику
насколько один проект философичнее (философнее?) другого?

Мы даже взяв первую буквочку (S) Single-Resp уже уходим в сложные не инженерные понятия.


Никакая это не философия :)
Чем S не инженерное понятие?
S легко поддаётся метрике, например, количество тестов на юнит.

Ну я написал 2 теста к примеру. Какие из этого следуют выводы?
23 июн 20, 08:57    [22155692]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Ну я написал 2 теста к примеру. Какие из этого следуют выводы?


Покрытие юнита 100% ?
Покрытие логики 100% ?

Если так, значит ваш юнит скорее всего соответствует SoR.
23 июн 20, 09:26    [22155716]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
У нас с тобой все таки разное понимание тестирования. У меня количество тестов соотвествует
количеству бизнес-сценариев. Я взял 1 логику и доказал ее формальную правоту с помощью
двух сценариев.

Следует из этого или нет SingleResp - я пока не знаю. Не уверен.
23 июн 20, 09:32    [22155719]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mad_nazgul


Э-э-э вообще-то Single-Responsibilty как раз про это.
Т.е. дизайн приложения и классов должен быть спроектирован так, что бы каждый класс отвечал за одно действие.
А когда у вас куча классов делает одно и то же... То что-то здесь не так.
Т.к. как раз ответственность размазана за какие-то действия размазана м/у этими классами.


а зачем куча классов которые делают одно и тоже?так просто не бывает)
а вот то что один класс отвечает за одно действие - полнейшая дичь,сейчас такое даже сложно представить на практике
вот у меня есть репозиторий и его имплементация - я что должен под каждый метод отдельный класс писать?))
типо удалить один,записать другой и тд- ну это же дичь? а если в один класс мы это помещаем то это уже два разных действия и может быть мне когда то в рамках двух разных задач потребуется менять оба метода- что опять же будет противоречить этим принципам
например поступит задача на изменение предиката в удалении ,а в записи добавится еще один аргумент- да такое бывает - когда добавляют в таблицу колонку))
и тут уже рушится этот солид- так как в одном классе будут несколько изменений связанных с абсолютно разными задачами
23 июн 20, 09:35    [22155722]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
Дмитрий Мух
Открой для себя шаблон Спецификация.

- хрен редьки не слаще. Просто перенос сложности в другое место - вместо кучи методов, куча классов.
23 июн 20, 10:25    [22155760]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79,

Действие по БЛ не равно методу класса
23 июн 20, 10:26    [22155761]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5395
Zzz79


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


Для этого есть другие страшные аббревиатуры DI и IOC ;-)
23 июн 20, 12:14    [22155873]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
У нас с тобой все таки разное понимание тестирования. У меня количество тестов соотвествует
количеству бизнес-сценариев. Я взял 1 логику и доказал ее формальную правоту с помощью
двух сценариев.


Я не знаю как можно юнит-тестирование понимать иначе.

Бизнес-сценарии и юнит-тесты вообще ортогональны друг другу. Их количество никак между собой не взаимосвязано.


mayton
Следует из этого или нет SingleResp - я пока не знаю. Не уверен.


Юнит-тесты покрывают код. Они тестируют реализацию юнитов, компонентов. При чём тут сценарии?

Возьмём самый простой случай. Проверка ИНН на корректность. Есть компонент, который выполняет одну простую задачу, проверяет этот самый ИНН на корректность. Используется совершенно в разных бизнес-сценариях.

Если этот компонент кроме проверки ИНН, будет ещё что-нибудь делать, например, проверять е-мейл до кучи, а также отправлять смс-ки, то это будет нарушением SoR.

Мне трудно вообще вписаться в картину мира, где SoR вызвает такие проблемы. Реал. Это прям какое-то зазеркалье )
23 июн 20, 13:12    [22155918]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Хорошо. Вот у тебя есть главный компонент. Application. Он контейнером в себя включает все другие
компоненты.

Как ты тестами покажешь что у него - SoR?
23 июн 20, 13:16    [22155923]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Хорошо. Вот у тебя есть главный компонент. Application. Он контейнером в себя включает все другие
компоненты.

Как ты тестами покажешь что у него - SoR?


Конечно, ведь Application не содержит всю логику внутри себя, а вызывает реализацию через соответствующие абстракции.

Юнит-тест должен гарантировать, что эти абстракции будут вызваны правильно, а результат правильно обработан. Вместо реализации абстракций подставляются моки или стабы.
23 июн 20, 13:24    [22155932]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
mayton
Хорошо. Вот у тебя есть главный компонент. Application. Он контейнером в себя включает все другие
компоненты.

Как ты тестами покажешь что у него - SoR?


Конечно, ведь Application не содержит всю логику внутри себя, а вызывает реализацию через соответствующие абстракции.

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


OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты
ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность"

И... я дальше ожидаю словесной формулировки. Какая?
23 июн 20, 13:26    [22155936]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
mayton
hVostt
пропущено...


Конечно, ведь Application не содержит всю логику внутри себя, а вызывает реализацию через соответствующие абстракции.

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


OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты
ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность"

И... я дальше ожидаю словесной формулировки. Какая?

Как показать, что Application "вызывает реализацию через соответствующие абстракции"?

Это будет пачка тестов вида:
Application_ShoudCallComponentOne_When...
Application_ShoudCallComponentTwo_When...

Когда сто процентное покрытие тестами такого вида, то очевидно, что Application только то и делает, что "вызывает реализацию через соответствующие абстракции".
23 июн 20, 13:37    [22155945]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Дмитрий Мух

очевидно, что Application только то и делает, что "вызывает реализацию через соответствующие абстракции".



Это самое прекрасное определение Single-Resp.
23 июн 20, 13:59    [22155983]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Дмитрий Мух

очевидно, что Application только то и делает, что "вызывает реализацию через соответствующие абстракции".



Это самое прекрасное определение Single-Resp.


Ну вот и будет видно, сколько ответственности несёт в себе ваш Application. По идее, он должен запустить планировщик задач, цикл обработки событий/запрсоов, или смаршрутизировать команду на вполнение. И всё.

А у вас что там находится?
23 июн 20, 14:07    [22155992]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты
ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность"

И... я дальше ожидаю словесной формулировки. Какая?


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

Больше ничего ваш Application делать не должен.
23 июн 20, 14:12    [22155995]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
mayton
OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты
ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность"

И... я дальше ожидаю словесной формулировки. Какая?


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

Больше ничего ваш Application делать не должен.

Воооот. Вот поэтому я это и называю фи-ло-со-фи-я. Мдя.
23 июн 20, 14:22    [22156007]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Воооот. Вот поэтому я это и называю фи-ло-со-фи-я. Мдя.


Какая ещё философия?
Если я книгу по высшей математике могу применить, как подпорку для двери, стоит ли писать об этом в назначении книги? Ещё могу книги использовать как подставку для стола, и т.д.

Философия? Нет.
23 июн 20, 14:37    [22156020]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Хвост.

Ты знаешь, когда Иогана Баха спросили как это он так ловко и хорошо играет на органе - он ответил
- Ничего сложного! Я просто своевременно нажимаю соотвестсвующие клавиши.
23 июн 20, 14:43    [22156025]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10418
mayton
соотвестсвующие
"Вовремя нажимал нужные"
23 июн 20, 14:46    [22156033]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Хвост.

Ты знаешь, когда Иогана Баха спросили как это он так ловко и хорошо играет на органе - он ответил
- Ничего сложного! Я просто своевременно нажимаю соотвестсвующие клавиши.


Красивая аналогия. Но я предлагаю от аналогии перейти к делу :)

Каков итог-то? В топку эти ваши принципы и методологии разработки, пилим как придётся, основываясь на субъективном понимании прекрсного по единственному рабочему принципу "я художник -- я так вижу!"? :)

Или проблемы в понимании вызывает только один единственный принцип SoR из солид?
23 июн 20, 14:59    [22156048]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
hVostt,
Мое имхо что прогер всегда был художником)))
23 июн 20, 15:03    [22156054]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
mayton
Хвост.

Ты знаешь, когда Иогана Баха спросили как это он так ловко и хорошо играет на органе - он ответил
- Ничего сложного! Я просто своевременно нажимаю соотвестсвующие клавиши.


Красивая аналогия. Но я предлагаю от аналогии перейти к делу :)

Каков итог-то? В топку эти ваши принципы и методологии разработки, пилим как придётся, основываясь на субъективном понимании прекрсного по единственному рабочему принципу "я художник -- я так вижу!"? :)

Или проблемы в понимании вызывает только один единственный принцип SoR из солид?

Видишь ли в чем дело тут.... Модульный тест просто показывает наличие какого-то то свойства у модуля.

Мне кажется что НЕДОСТАТОЧНО будет показать просто тесты.

Тут нужно наверное зайти со стороны базового интерфейса например. А тогда зачем тесты?
23 июн 20, 15:04    [22156055]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Давайте вот посмотрим на этот интерфейс.

interface IConverter {

 @NotNull Object from(@NotNull Object object);

}


Он - реализует SingleResp?
23 июн 20, 15:07    [22156058]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
chpasha
Member

Откуда:
Сообщений: 9552
mayton
Он - реализует SingleResp?

у него нет реализации, только контракт. его имплементация может как соблюдать так и нарушать

хотя с другой стороны, наличие кучи методов с интересными названиями может уже и в интерфейсе намекать о нарушении

Сообщение было отредактировано: 23 июн 20, 15:24
23 июн 20, 15:26    [22156077]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10418
PetroNotC Sharp
был
На самом деле - нет, не был программист художником.
Было время, когда можно было долго пилить сложный проект в одиночку или небольшой слаженной группой.
23 июн 20, 15:30    [22156082]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Basil A. Sidorov
PetroNotC Sharp
был
На самом деле - нет, не был программист художником.
Было время, когда можно было долго пилить сложный проект в одиночку или небольшой слаженной группой.

Ты написал "нет", но не обосновал.
А счас пишут проекты большой группой?
23 июн 20, 15:42    [22156094]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
mayton,

Тестируют фнкционал. А интерфейс - контракт. Или Намерения.
23 июн 20, 15:44    [22156097]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
chpasha
mayton
Он - реализует SingleResp?

у него нет реализации, только контракт. его имплементация может как соблюдать так и нарушать

хотя с другой стороны, наличие кучи методов с интересными названиями может уже и в интерфейсе намекать о нарушении

Хорошо. Тогда я предложу такое определение.

Классы, реализующие функциональные интерфейсы (ФИ) обладают SingleResp в рамках методов ФИ.

Пример ФИ : Function<T,R>, Consumer<T>, Supplier<T>.

Сообщение было отредактировано: 23 июн 20, 15:43
23 июн 20, 15:45    [22156102]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10418
PetroNotC Sharp
но не обосновал.
Не стал повторять аргументы мистера Брукса, изложенные в книге "Мифический человеко-месяц".
А счас пишут проекты большой группой?
В основном - работу работают. А это - всегда быстро. А большая группа - основной способ сделать быстро.
23 июн 20, 16:02    [22156112]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
chpasha
Member

Откуда:
Сообщений: 9552
mayton
Хорошо. Тогда я предложу такое определение.

Классы, реализующие функциональные интерфейсы (ФИ) обладают SingleResp в рамках методов ФИ.

Пример ФИ : Function<T,R>, Consumer<T>, Supplier<T>.

х.з., ну наверное :) , скажем так, в их контракте ничто не предвещает. впрочем как и в предыдущем примере
23 июн 20, 16:03    [22156113]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Basil A. Sidorov
PetroNotC Sharp
но не обосновал.
Не стал повторять аргументы мистера Брукса, изложенные в книге "Мифический человеко-месяц".
А счас пишут проекты большой группой?
В основном - работу работают. А это - всегда быстро. А большая группа - основной способ сделать быстро.

Как и было. Кодировщик делает строго по ТЗ. Программист каждую строчку думает как лучше - художник.
Есть как первые так и вторые всегда и везде.
23 июн 20, 16:25    [22156128]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Давайте вот посмотрим на этот интерфейс.

interface IConverter {

 @NotNull Object from(@NotNull Object object);

}



Он - реализует SingleResp?


Интерфейс ничего не реализует :)

Но интерфейс следует по контракту SoR, так как выполняет только одну задачу: конвертирует экземпляр одного типа в другой тип (или тот же, в контракте не декларируется).
23 июн 20, 16:27    [22156131]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Видишь ли в чем дело тут.... Модульный тест просто показывает наличие какого-то то свойства у модуля.

Мне кажется что НЕДОСТАТОЧНО будет показать просто тесты.

Тут нужно наверное зайти со стороны базового интерфейса например. А тогда зачем тесты?


Юнит-тесты тестируют реализацию (юнита).
Интерфейсы же позволяют протестировать конкретную реализацию изолировано от зависимостей.
23 июн 20, 16:29    [22156134]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
mayton,
Говори - простт классы. Зачем добавка про интерфейсы?
23 июн 20, 16:32    [22156137]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Вот как прекрасно. Тоесть если мы слегка поднажмём на контракт - то получим в правой руке искомое.
23 июн 20, 16:34    [22156139]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Разумеется многие посмотрев на код скажут. Mayton ты што опух? Тут и так воочию видно (очевидно) что этот чортов класс
Single-Resp. Я говорю - окей. Допустим я опух. Можно эту очевидность формализовать? Один вариант предложил Хвост.
Он считает что надо тестировать и через тестовые сценарии доказывать что там БОЛЬШЕ ничего нет. Кроме того что надо.
Я говорю окей. А можно декларативно? Тоесть мы можем так декларировать класс чтоб... .комар носа не подточил!
Чтоб..... Броня!!! Чтоб как каменюка стояла это панимаешь сингле-респонсибилити.

Хотя я понимаю что вы обычно не юзаете реализации с 1 методом и на практике все равно будет 100500 методов.
23 июн 20, 16:50    [22156150]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Разумеется многие посмотрев на код скажут. Mayton ты што опух? Тут и так воочию видно (очевидно) что этот чортов класс
Single-Resp. Я говорю - окей. Допустим я опух. Можно эту очевидность формализовать? Один вариант предложил Хвост.
Он считает что надо тестировать и через тестовые сценарии доказывать что там БОЛЬШЕ ничего нет. Кроме того что надо.


Был вопрос про метрику оценки, я сказал пример такой метрики: тесты.
Однако юнит-тесты пишутся не для этой метрики, это просто дополнительный бонус.

mayton
Я говорю окей. А можно декларативно? Тоесть мы можем так декларировать класс чтоб... .комар носа не подточил!
Чтоб..... Броня!!! Чтоб как каменюка стояла это панимаешь сингле-респонсибилити.


Это принцип, нарушение которого приводит к увеличению сложности и другим неприятным эффектам. Вывели эти принципы эмпирическим путём. В общем-то любые методики, методологии и практики были выведены для того, чтобы не наступать на грабли, которые отбили лоб не одной тысяче людей.

mayton
Хотя я понимаю что вы обычно не юзаете реализации с 1 методом и на практике все равно будет 100500 методов.


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

Следование этому принципу порождает увеличение количество классов. Что иногда приводит некоторых людей в ужас. Дескать, зачем же плодить классы, когда можно было всё запихать в один.

Полагаю на заре дисциплины, декомпозиция программы на процедуры могла вызывать такой же батхёрд у мамонтов программирования с их километровыми листингами, напичканными GOTO
23 июн 20, 17:08    [22156156]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton,

Ну и самое главное. Как же применять SOLID на практике?
Кого не спросишь:

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

Да-да, написав каждую строчку кода сижу и задумываюсь, а соответствует ли он солиду, солидный ли мой код? )))

Но ответ лежит на поверхности, особенно для людей, работающих в команде с применением код ревью.
23 июн 20, 17:10    [22156157]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Хвост. Я тебе честно скажу что я SOLID иногда нарушаю. Ну просто не всегда удаётся следовать такому себе
философскому идеалу. Тут еще трудность в том что когда в код смотрят 2 человека, каждый из них видит своё.

Как в той притче где двое смотрели на луну и каждый из них пальцем указывал в свою сторону.

Вот давай щас пойдем в гитхаб и рандомно начнем смотреть classes и я готов спорить что мы не придем
к единому мнению даже по поводу Single-Resp. Этож надо еще смотреть в семантику кода. В развитие.
В то что было написано и то что имелось в виду.

И это мы еще только первую букву (S) разбирали.
23 июн 20, 20:24    [22156245]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
mayton,

что, даже при реализации такого шаблона как репозиторий не получается следовать приниципу единственности ответственности?
23 июн 20, 20:40    [22156250]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Дмитрий Мух
Member

Откуда: Зеленоград
Сообщений: 3796
Просто SOLID я упомянул в контексте реализации репозитория, а дискуссию развили так, что типа SOLID - это философский идеал.
И типа напрашивается вывод, что даже пресловутый репозиторий фиг напишешь по этим принципам
23 июн 20, 20:45    [22156252]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Хвост. Я тебе честно скажу что я SOLID иногда нарушаю.


Звучит как признание в нарушениях ПДД )

mayton
Ну просто не всегда удаётся следовать такому себе философскому идеалу. Тут еще трудность в том что когда в код смотрят 2 человека, каждый из них видит своё.


SOLID лежит сугубо в практической и только практической плоскости.
Ничем философским тут не пахнет и в помине :)

Насчёт того, что видят каждый своё, ну а как в таких условиях вы собираетесь вести командную работу в принципе? Типа два художника каждый со своим больным воображением пришли рисовать единую картину?

mayton
Вот давай щас пойдем в гитхаб и рандомно начнем смотреть classes и я готов спорить что мы не придем
к единому мнению даже по поводу Single-Resp. Этож надо еще смотреть в семантику кода. В развитие.
В то что было написано и то что имелось в виду.


Популярные проекты на гитхабе зачастую отличаются очень высоким качествам.

mayton
И это мы еще только первую букву (S) разбирали.


Ну так вот и хотелось бы разобраться, какие у вас есть с ней проблемы.

Вполне уместно рассмотреть на примере репозитория, о чём говорит skyANA.
23 июн 20, 21:44    [22156282]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
hVostt,
В java в отличии от шарпа есть JPA.
И поэтому пример от skyANA мимо.
24 июн 20, 07:42    [22156404]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
PetroNotC Sharp
В java в отличии от шарпа есть JPA.


Нашлёпка какая-то над хибером c нетипизированными JPQL запросами :)

В .NET это Entity SQL. Ну и при большой любви к хиберу можно подключить NHibernate и писать HQL )
Не исключаю, что стырили идею как раз из JPA.

Но какой смысл писать объектные запросы, если нет информации о типах, как в LINQ? Ни тебе статической проверки на этапе компиляции, ни интеллисенса (хотя может идея как-то умеет, не исключаю).

Фишка LINQ, что написанный запрос может как транслироваться в БД, так и оперировать самыми обычными коллекциями объектов в памяти. Универсально.

Если уж писать запросы в строках, то имеет смысл писать из БД, а не к промежуточной нашлёпке.



PetroNotC Sharp
И поэтому пример от skyANA мимо.


Т.е. если у тебя есть JPA, тебе не нужен репозиторий? )))
24 июн 20, 14:26    [22156554]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
PetroNotC Sharp
В java в отличии от шарпа есть JPA.

Нашлёпка какая-то над хибером c нетипизированными JPQL запросами :)

Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас
появятся корректировки и дополнения к твоей фразе.
24 июн 20, 14:33    [22156560]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас
появятся корректировки и дополнения к твоей фразе.


А что не верно в формулировке? JPA это спецификация, при чём языка JPQL основан на HQL. Hiber реализует JPA.

Скорректируешь?
24 июн 20, 15:09    [22156586]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался.
24 июн 20, 15:34    [22156608]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
mayton
Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался.


Ясно ) Ну нашлёпка же, над хибером. При чём если ты используешь расширенные возможности хибера, то смысл в спецификации становится всё менее ценным, так как на другую реализацию уже перейти не получится в принципе.
24 июн 20, 17:36    [22156671]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
hVostt
языка JPQL основан на HQL

- одновременно с Hibernate появилась спецификация Java Data Objects (JDO) и JDOQL, так что кто там на ком основан вопрос в принципе темный

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

- значит, при наличии планов смены ORM, надо следовать спецификации JPA
24 июн 20, 21:56    [22156819]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
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 июн 20, 23:46    [22156850]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Kachalov
- значит, при наличии планов смены ORM, надо следовать спецификации JPA


Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы.

Это так, небольшой наброс )
24 июн 20, 23:48    [22156852]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
hVostt,

>Т.е. если у тебя есть JPA, тебе не нужен репозиторий? )))
Он и в шарпе не нужен. Он уже написан в EF. Это skyANA носится с ним по всем веткам.
25 июн 20, 07:53    [22156912]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
hVostt
Kachalov
- значит, при наличии планов смены ORM, надо следовать спецификации JPA


Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы.

Это так, небольшой наброс )

Менять не будут. Просто их все построили и причесали под одну гребёнку))))) Под один интерфейс.
Имхо более половины проектов на JPA
25 июн 20, 07:56    [22156913]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
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":

К сообщению приложен файл. Размер - 62Kb
25 июн 20, 10:23    [22157001]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
hVostt
Kachalov
- значит, при наличии планов смены ORM, надо следовать спецификации JPA


Да смена ORM это вообще мифическая фича, кто в здравом уме в большом живом проекте будет менять ORM? Даже со сменой СУБД будут явые проблемы.

Это так, небольшой наброс )

Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.
25 июн 20, 10:30    [22157013]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
mayton
Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.

- в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко (проблемы там где делают unwrap и хардкодят хинты - но ... сами понимаете, это по сути дурной тон кодирования). Хотя, если быть честным, в большинстве проектов используют Hibernate и никаких предпосылок использовать что то иное нет)
25 июн 20, 10:54    [22157035]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Kachalov
mayton
Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.

- в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко (проблемы там где делают unwrap и хардкодят хинты - но ... сами понимаете, это по сути дурной тон кодирования). Хотя, если быть честным, в большинстве проектов используют Hibernate и никаких предпосылок использовать что то иное нет)

Тоесть говорим ORM - подразумеваем Хибернейт.

Это как говорим Ксерокс - подразумеваем некий *Noname* копировальный аппарат.

Сообщение было отредактировано: 25 июн 20, 11:07
25 июн 20, 11:09    [22157059]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
mayton
Тоесть говорим ORM - подразумеваем Хибернейт.

- я бы сформулировал иначе) Говорим ORM, подразумеваем JPA (хотя есть крупные EE проекты где работают без JPA - например Diasoft в некоторых своих широко внедренных проектах использует Apache Cayenne или Google App Engine, где применяют JDO, есть и проекты на iBATIS).
25 июн 20, 11:25    [22157082]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3625
Kachalov
mayton
Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.

- в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко
Ну вот если смотреть на хибер, то у него таки-много расширений JPA направленных на улучшение производительности, так что есть сомнения, что слезть "прооптимизированной" хиберовской модели будет просто.
25 июн 20, 11:39    [22157099]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
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 июн 20, 15:16    [22157239]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
hVostt
Но чему тогда верить? И зачем столько тьмы в простом вопросе?

- не стоит создавать мифы (и ограничивать кругозор). Тем кто начинал свой путь с Hibernate, сложнее, так как особой необходимости копаться в альтернативах и истории нет, тем кто видел как это Hibernate появился, проще, так как уже все альтернативы попробованы.

hVostt

Ну обычно, это означает почти полное переписывание кодовой базы, или её части.
Нельзя взять другой ORM, и написать декораторы к существующим интерфейсам.

Опять же. Если не проектировалось всё таким образом, что ORM не лезет дальше слоя доступа к данным ни в каком виде.

- зачем возлагать на ORM дополнительную логику? Данные должны быть отмаплены на БД и закэшены, там где можно - большего от ORM не требуется
25 июн 20, 17:03    [22157333]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
Андрей Панфилов
Ну вот если смотреть на хибер, то у него таки-много расширений JPA направленных на улучшение производительности, так что есть сомнения, что слезть "прооптимизированной" хиберовской модели будет просто.

- что может быть лучше Native SQL в смысле производительности? (вопрос провакациононный)
25 июн 20, 17:06    [22157334]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Хибер хорош пока никто не пытается в context прогрузить всю базу
25 июн 20, 17:15    [22157347]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
Kachalov
Андрей Панфилов
Ну вот если смотреть на хибер, то у него таки-много расширений JPA направленных на улучшение производительности, так что есть сомнения, что слезть "прооптимизированной" хиберовской модели будет просто.

- что может быть лучше Native SQL в смысле производительности? (вопрос провакациононный)

вопрос в том зачем она тебе эта производительность?
что такое производительность в рамках облачных технологий и современных серверов ?

если только ты не пишешь новый гугол- тогда к чему все эти разговоры ?ваши 1000 запросов в день сейчас обработает даже утюг)

чем то навеяло антипатерн GAS FACTORY проецируемый на производиельность системы- важные архитекторы не очень важных проектов раздувая щеки сетуют на нехватку производительности)

уж на сколько у нас большой проект ,которым пользуется где то процентов 15% населения РФ и это мы на хибере сидим
а вам то куда с вашими цветочными магазинами с двумя посетилями в месяц)
25 июн 20, 22:42    [22157498]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Хибер хорош пока никто не пытается в context прогрузить всю базу

хибер хорош ) на этом можно остановиться

чистый ждбси и все вот это уходит в лету - это надо принять,понять и смириться

все эти проектировщик бд - по сути вымирающий вид- за них все делает хибер dll)
25 июн 20, 22:46    [22157500]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Zzz79
Kachalov
пропущено...

- что может быть лучше Native SQL в смысле производительности? (вопрос провакациононный)

вопрос в том зачем она тебе эта производительность?
что такое производительность в рамках облачных технологий и современных серверов ?

Современные сервера с 2005 года то толком частоту свою уже не поднимают.
А что облаки? Они за счет распределенных данных могут скейлить только чтение.
Как только пошла запись или конкурирующая запись то эти облаки хуже монолита.

А SQL знать просто надо. Это как латынь среди врачей. Единый язык на котором
можно описывать данные. И создал его математик. Это ... не коллекции с аррейлистами
и не циклы крутить. А теория множеств.
25 июн 20, 23:03    [22157511]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Kachalov
hVostt
Но чему тогда верить? И зачем столько тьмы в простом вопросе?

- не стоит создавать мифы (и ограничивать кругозор). Тем кто начинал свой путь с Hibernate, сложнее, так как особой необходимости копаться в альтернативах и истории нет, тем кто видел как это Hibernate появился, проще, так как уже все альтернативы попробованы.


Что плохого, что JPA за основу взял HQL? Создание подобного мифа -- бессмысленно. Для чего?

Kachalov
- зачем возлагать на ORM дополнительную логику? Данные должны быть отмаплены на БД и закэшены, там где можно - большего от ORM не требуется


В таком виде сейчас существую так называемые micro ORM, потому как "серьёзные" ORM предоставляют гораздо больше сервисов.

Если решить только одну задачу -- маппить данные в классы, то остальное придётся всё кодить. А когда 10 программистов разработают свой слой доступа к данным, обнаружится, что они просто сделали принципиально одно и то же, но каждый на свой лад.

Собственно такие проекты, как Hibernate пытались обобщить множество подобных решений под одной крышей. Поэтому ORM это давно не только маппинг. Обычно там и репо и UOW, и свой язык запросов, кеширование, отслеживание изменений, аудит, точки расширения и т.д.

Сообщение было отредактировано: 25 июн 20, 23:05
25 июн 20, 23:06    [22157514]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Zzz79
пропущено...

вопрос в том зачем она тебе эта производительность?
что такое производительность в рамках облачных технологий и современных серверов ?

Современные сервера с 2005 года то толком частоту свою уже не поднимают.
А что облаки? Они за счет распределенных данных могут скейлить только чтение.
Как только пошла запись или конкурирующая запись то эти облаки хуже монолита.

А SQL знать просто надо. Это как латынь среди врачей. Единый язык на котором
можно описывать данные. И создал его математик. Это ... не коллекции с аррейлистами
и не циклы крутить. А теория множеств.

На счет того чтобы знать Sql никто не спорит) но если раньше вы отдавали базе все что только можно,разгружая сервер приложений
то сейчас в этом тупо нет необходимости

сейчас твое заявление о sql выглядит как рогозинский батут)

отходите вы уже от этой бредятины


пс. я на работе почти месяц боролся за то ,что в 2020 году не нужно батчить файл размером 10000 строк
но так и не смог побороть олд скулеров,которые выросли на памяти в 128 кб) ты им просто тупо не можешь обьяснить,что сейчас у сервиса 16 гиг озу и ему твои буферы в 4 кб или 500 кб без разницы
25 июн 20, 23:12    [22157519]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
и вообще конечно каждый прогер должен хотя бы немного отдуплять куда его приложение ставится

я вижу часто полное непонимание происходящего и постоянный оверхед в коде и конфигах

тоесть вот у меня на проде сервак 16 гиг -полностью выделен под мой сервис - какого хрена я должен юзать батч для отправки распарсенного csv- ну это же просто смешно

аргументация лида - а вдрух когда то придет очень большой файл))

я говорю ему у нас определенный csv который имеет теоретически законченный размер( это список сотрудников компании)

тоесть может быть 10000 может 15000 но не будет 2млн сразу - хотя и это спокойно бы сервер скушал

вот вы такие все закостенелые там сидите и мешаете нам работать(
25 июн 20, 23:20    [22157522]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Zzz79

пс. я на работе почти месяц боролся за то ,что в 2020 году не нужно батчить файл размером 10000 строк
но так и не смог побороть олд скулеров,которые выросли на памяти в 128 кб) ты им просто тупо не можешь обьяснить,что сейчас у сервиса 16 гиг озу и ему твои буферы в 4 кб или 500 кб без разницы

А расскажи как ты себе сам смысл батча понимаешь? Может они были правы да ты просто не про то думал.
25 июн 20, 23:43    [22157530]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Zzz79
тоесть вот у меня на проде сервак 16 гиг -полностью выделен под мой сервис - какого хрена я должен юзать батч для отправки распарсенного csv- ну это же просто смешно

аргументация лида - а вдрух когда то придет очень большой файл))


А вам повезло с лидом.
26 июн 20, 03:29    [22157554]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Zzz79
и вообще конечно каждый прогер должен хотя бы немного отдуплять куда его приложение ставится


Поэтому мы видим кучу версий каждой библиотеки вида:

версия под 8Гб оперативы
версия для 16Гб оперативы
...

версия для слабодумающих )
26 июн 20, 03:31    [22157555]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Мне кажется чрезмерное потребление памяти - просто признак другой проблемы. Например бизнес-сущности
дублируются в памяти. Каждый поток владеет независимой копией хотя по бизнесу - сущности уникальны.
Многие операции агрегации могут быть выполнены очень быстро и эффективно в БД (SQL) или BigData,
без перекачивания их на сторону App.

И долго не отрабатывают финализаторы. Данные уже вроде-бы не нужны но какие-то глобальные коллекции
их продолжают удерживать (типичный leak для java) и явной команды на освобождение никак не приходит.

Тоесть дело даже не в 16Гб а в том что если проблема системная то там хоть 32 и хоть 64 ставь она будет
с ростом бизнеса также безсмысленно потреблять все что есть.

Кстати для GC класса Parallel простое бездумное увеличение Xmx приводило к новой проблеме. К фризу потоков
которые обслуживали сетевые сокеты и как следствие появлялись новые сетевые ошибки еще более
сложные и комплексные чем просто OOM. Как реагирует G1GC на простое растягивание памяти - непонятно.
Возможно в меньшей степени но тем не менее фризы надо регулировать доп-параметрами.
26 июн 20, 09:20    [22157598]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Zzz79

пс. я на работе почти месяц боролся за то ,что в 2020 году не нужно батчить файл размером 10000 строк
но так и не смог побороть олд скулеров,которые выросли на памяти в 128 кб) ты им просто тупо не можешь обьяснить,что сейчас у сервиса 16 гиг озу и ему твои буферы в 4 кб или 500 кб без разницы

А расскажи как ты себе сам смысл батча понимаешь? Может они были правы да ты просто не про то думал.

он отправляет порциями файл- как еще
26 июн 20, 09:49    [22157613]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
hVostt
Zzz79
тоесть вот у меня на проде сервак 16 гиг -полностью выделен под мой сервис - какого хрена я должен юзать батч для отправки распарсенного csv- ну это же просто смешно

аргументация лида - а вдрух когда то придет очень большой файл))


А вам повезло с лидом.

лид у нас хороший,но вот с этой батч системой я в корне не согласен- в текущих реалиях это GAS FACTORY
26 июн 20, 09:50    [22157615]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79,

>он отправляет порциями файл- как еще
Сишник наверно.
Они любят буфера, кеши, батчи.
Чтобы записать строку будут буфер под нее выделять и частями копировать.
26 июн 20, 10:25    [22157638]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
Zzz79
Kachalov
- что может быть лучше Native SQL в смысле производительности? (вопрос провакациононный)

вопрос в том зачем она тебе эта производительность?
что такое производительность в рамках облачных технологий и современных серверов ?

если только ты не пишешь новый гугол- тогда к чему все эти разговоры ?ваши 1000 запросов в день сейчас обработает даже утюг)

чем то навеяло антипатерн GAS FACTORY проецируемый на производиельность системы- важные архитекторы не очень важных проектов раздувая щеки сетуют на нехватку производительности)

уж на сколько у нас большой проект ,которым пользуется где то процентов 15% населения РФ и это мы на хибере сидим
а вам то куда с вашими цветочными магазинами с двумя посетилями в месяц)

- какой то беспредметный наезд. Я работал в разных проектах (в том числе ... бла-бла-бла ... сейчас это ЕМИАС) и нативные запросы, необходимость их оптимизации и пятиэтажные джойны с позапросами - не редкость (и эффект на производительность бывает более чем существенным). Лично я не считаю что native sql -это правильный путь однако плевать на производительность даже PetShop глупо. Когда дебильный код работает у разраба на трех записях в базе - это не значит что он будет так же хорошо работать на нескольких миллионах записей на проде. В ЕМИАС, например, записей довольно много а скорость выполнения запроса (метода) это критический параметр который лимитируется, а вот кластеризация "утюга", к сожалению, не повышает скорость выполнения отдельных методов, что накладывает обязательства на архитектора и разработчика, так как тупым увеличением мощности железа вопрос не решается
26 июн 20, 10:26    [22157639]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
hVostt

Что плохого, что JPA за основу взял HQL? Создание подобного мифа -- бессмысленно. Для чего?

- Вы зачем то начали форсить тему "кто на ком стоял", я Вас поправил, что история более сложная чем это написал хз кто в википедии. Если для Вас это важно, можно дискутировать дальше, хотя мне этот вопрос кажется не существенным.
26 июн 20, 10:31    [22157641]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
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 июн 20, 10:36    [22157645]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Zzz79
лид у нас хороший,но вот с этой батч системой я в корне не согласен- в текущих реалиях это GAS FACTORY


Общие решения лучше и всем параметрам, кроме возможно сложности. Тем более всё, что связано с загрузкой данных, есть правила, которых лучше придерживаться.

Это как на стройке, вы начинаете рассказывать, что на этом участке ничего на голову вам не упадёт, и зачем носить каску.

Но у вас замечательный лид, который заставляет носить каску везде, и не важно на каком участке стройки вы там ходите.

Сообщение было отредактировано: 26 июн 20, 10:36
26 июн 20, 10:38    [22157649]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Kachalov
чем это написал хз кто в википедии


Вот это пренебрежительное отношение к вики никогда не понимал. Там вообще-то источники есть со ссылками. И типа никто из тысяч разработчиков не спохватился не бросил исправление. Ну-ну.
26 июн 20, 10:40    [22157654]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Zzz79
mayton
пропущено...

А расскажи как ты себе сам смысл батча понимаешь? Может они были правы да ты просто не про то думал.

он отправляет порциями файл- как еще

Ну а для взаимодействия двух систем какая разнциа. 100 вставок по 1 строке. Или 1 вставка по 100 строк.

P.S. Большие раки по 5 рублей...
26 июн 20, 10:41    [22157655]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
mayton
Zzz79
пропущено...

он отправляет порциями файл- как еще

Ну а для взаимодействия двух систем какая разнциа. 100 вставок по 1 строке. Или 1 вставка по 100 строк.

P.S. Большие раки по 5 рублей...

Снаружи никакой. А прогерам оверхед.
В ТЗ должно быть записано какой максимальный размера файл поддерживает код.
26 июн 20, 10:51    [22157664]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
hVostt
Kachalov
чем это написал хз кто в википедии


Вот это пренебрежительное отношение к вики никогда не понимал. Там вообще-то источники есть со ссылками. И типа никто из тысяч разработчиков не спохватился не бросил исправление. Ну-ну.

- так скажите кто написал статью в вики? давно он с JPA знаком? а хибер когда впервые увидел? Все это напоминает рассказы современных школьников о жизни в СССР.

Еще раз сошлюсь на источник (состав авторов и их регалии есть в предисловии) Persistence in the Enterprise: A Guide to Persistence Technologies

К сообщению приложен файл. Размер - 23Kb
26 июн 20, 11:05    [22157669]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Там с размером файла вобщем не связано.
26 июн 20, 11:12    [22157674]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
mayton
Там с размером файла вобщем не связано.
фиг знает.
Бъёт на куски нижний системный уровень/транспорт.
Прикладной ли уровень в его рассказах выше хз.

Сообщение было отредактировано: 26 июн 20, 11:16
26 июн 20, 11:18    [22157676]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
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 июн 20, 11:19    [22157678]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
hVostt
Member

Откуда:
Сообщений: 17945
Kachalov
- так скажите кто написал статью в вики? давно он с JPA знаком? а хибер когда впервые увидел? Все это напоминает рассказы современных школьников о жизни в СССР.


Кто "он"?


Kachalov
Еще раз сошлюсь на источник (состав авторов и их регалии есть в предисловии) Persistence in the Enterprise: A Guide to Persistence Technologie


Не вижу противоречий.

Сообщение было отредактировано: 26 июн 20, 14:41
26 июн 20, 14:42    [22157829]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Kachalov
Member

Откуда: Москва
Сообщений: 5734
hVostt
Кто "он"?

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

hVostt
Не вижу противоречий.

- не вижу в Вики слова JDO, Kodo и TopLink, но убеждать сторонников плоскоземелья в том что Земля круглая - себе дороже. А если говорить конкретно про JPA и Hibernate (какого года там рождения первый коммит?), то припоминается что запросы на птичьем языке были еще CMP-компонентах в EJB 1 (а это 1998 год) и что Apache Cayenne (он тогда иначе назывался) появился одновременно с хибером, но конечно это ничего не значит - гениальные разработчики хибера свалились из параллельной вселенной и ничего об этом не знали. Ну и до рождества Христова не было других религий и монотеизма.
26 июн 20, 16:37    [22157888]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Мне кажется что информационна ценность wiki - в ссылках на статьи и литературу которая прикреплена внизу.

Кроме того я часто замечал что русскоязычная wiki является унылым переводом англоязычной с точностью до исходников.
Тоесть не было творческого перосмысления а кто-то просто "делал план" по заполнению контента.

Это очень сильно снижает ценность русской вики как источника информации.
26 июн 20, 17:17    [22157910]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17915
mayton
Хибер хорош пока никто не пытается в context прогрузить всю базу
и если его используют для десктопа

Сообщение было отредактировано: 27 июн 20, 19:06
27 июн 20, 19:07    [22158311]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17915
Zzz79
вопрос в том зачем она тебе эта производительность?
что такое производительность в рамках облачных технологий и современных серверов ?
как бы тогда никто не задумывался про масштабируемость...
и нагрузочные тесты
27 июн 20, 19:12    [22158314]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
mayton
Zzz79
пропущено...

он отправляет порциями файл- как еще

Вот главная идея в двух словах описана на сайте 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. Путешествия сетевых
пакетов туда и обратно.

ну я тебе про это и написал ) отправляет пакетами дату
суть в том что наш лид переживает что сервер напряжется если мы отправим в бд файл целиком- точней не файл - а то что мы там распарсили

разница для современных серверов смехотворна- 1000 записей 3 кб,1000000 что то около 400 кб

ну тоесть смешно ,учитывая что на сервер в проде дают 16 гиг и такой аплоад происходит лишь один раз в сутки по расписанию ночью,когда сервак максимально разгружен

вот это опять антипатерн GAS FACTORY в чистом виде- избыточность функционала
27 июн 20, 19:47    [22158333]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
PetroNotC Sharp
Zzz79,

>он отправляет порциями файл- как еще
Сишник наверно.
Они любят буфера, кеши, батчи.
Чтобы записать строку будут буфер под нее выделять и частями копировать.

вот именно так и есть ) он норм чувак,но вот это все как все эти фобии что буфер лопнет ,и тд просто вымораживают)

вся это батч система в наших сервисах обслуживает файлы csv которые содержат 1200-1300 записей
ну мб когда то будет 100 000 что нисколько не напряжет сервер ,так как это происходит единожды в день )

ну вообщем я считаю что сейчас там антипатерн GAS FACTORY(не зря же я учил патерны)))
27 июн 20, 19:51    [22158335]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
Zzz79
Member

Откуда:
Сообщений: 569
а еще у нас по моему мнению ипанутый кэш)
что такое кэш в нормальном его понимании- запрос был - положили в кэш

у нас же на старте сервиса в кэш грузятся все справочники и не важно - потребуется ли оттуда что или нет

я честно поначалу не понимал так как опыта не было ,а сейчас я вижу при загрузке сервиса эти километровые логи и не пойму накуя?

в чем проблема сделать запрос в бд и положить в кэш ,вместо того чтобы грузить в кэш всю базу

мб я чего то не понимаю конечно)
27 июн 20, 19:56    [22158336]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Zzz79
а еще у нас по моему мнению ипанутый кэш)
что такое кэш в нормальном его понимании- запрос был - положили в кэш

у нас же на старте сервиса в кэш грузятся все справочники и не важно - потребуется ли оттуда что или нет

я честно поначалу не понимал так как опыта не было ,а сейчас я вижу при загрузке сервиса эти километровые логи и не пойму накуя?

в чем проблема сделать запрос в бд и положить в кэш ,вместо того чтобы грузить в кэш всю базу

мб я чего то не понимаю конечно)

Когда от системы требуется быстрый отклик (типичный случай для систем опер-дня)
то пускай они стартуют хоть целый час. Не жалко с 7.00 до 8.00 кеши прогревать.
А если от этой процедуры отказаться - то очевидно что бизнес-процессы будут
каждый раз делать интеракцию с БД для каждого нового значения в справочнике.
Какой кейс тут удачен - я не знаю. Это надо тебе говорить с твоим тех-лидом
и с бизнесом. Во всех случаях - пожелания бизнеса должны быть в приоритете.
Эти прекрасные господа тебе платят деньги - значит они должны быть happy.

Если они - не happy - то ты моменьтально почувствуешь это на кармане.
27 июн 20, 20:22    [22158348]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17915
mayton
Когда от системы требуется быстрый отклик (типичный случай для систем опер-дня)
то пускай они стартуют хоть целый час. Не жалко с 7.00 до 8.00 кеши прогревать.
А если от этой процедуры отказаться - то очевидно что бизнес-процессы будут
каждый раз делать интеракцию с БД для каждого нового значения в справочнике
но тут есть и другой взгляд - все субд заточены на хорошую нагрузку, и если для нормальной работы используется какое-то кеширование - может работа с субд сделана через жопу?
27 июн 20, 22:34    [22158401]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
Zzz79,
Есть вполне конкретные метрики ЭФФЕКТИВНОСТИ КЕША.
Можешь изучит вопрос и доказать, что всё грузить в память неэффективно
https://studfile.net/preview/2282202/page:7/
Но вполне может быть, так как памяти навалом, это не доказать.
Так как все справочники влазят в память.
Кеш хорош когда нет резиновой памяти.
27 июн 20, 22:36    [22158404]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
вадя
mayton
Когда от системы требуется быстрый отклик (типичный случай для систем опер-дня)
то пускай они стартуют хоть целый час. Не жалко с 7.00 до 8.00 кеши прогревать.
А если от этой процедуры отказаться - то очевидно что бизнес-процессы будут
каждый раз делать интеракцию с БД для каждого нового значения в справочнике
но тут есть и другой взгляд - все субд заточены на хорошую нагрузку, и если для нормальной работы используется какое-то кеширование - может работа с субд сделана через жопу?

Тебе обязательно надо поговорить с ребятами из Сбербанка.
27 июн 20, 22:36    [22158405]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 5384
вадя,
Хорошая нагрузка это сколько в граммах?
27 июн 20, 22:40    [22158410]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17915
mayton
Тебе обязательно надо поговорить с ребятами из Сбербанка.
это что-то изменит?



PetroNotC Sharp
Хорошая нагрузка это сколько в граммах?
100г/кг
устроит?
27 июн 20, 22:47    [22158415]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
вадя
mayton
Тебе обязательно надо поговорить с ребятами из Сбербанка.
это что-то изменит?

Да... Пожалуй не говори. Я боюсь что они увидят твой "серверный рендеринг"
27 июн 20, 22:49    [22158417]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17915
mayton
Да... Пожалуй не говори. Я боюсь что они увидят твой "серверный рендеринг"
если они применяют принципы для десктопов к серверным приложения - то с ними бесполезноразговаривать
27 июн 20, 22:54    [22158419]     Ответить | Цитировать Сообщить модератору
 Re: Удаление записей соответствующих условию из БД в Hibernate  [new]
mayton
Member

Откуда: loopback
Сообщений: 47969
Ох уж эти субботние топики.

Всем - спать срочно.
27 июн 20, 23:01    [22158422]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2 3 4 5 6 7 8      [все]
Все форумы / Java Ответить