powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Удаление записей соответствующих условию из БД в Hibernate
168 сообщений из 168, показаны все 7 страниц
Удаление записей соответствующих условию из БД в Hibernate
    #39971452
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!

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

Код: java
1.
2.
3.
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)

Как удалять тогда, если нужно удалить сразу много записей соответствующих условию?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971454
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vlad__i__mir, пробовал делать так:
Код: java
1.
2.
3.
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)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971455
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vlad__i__mir, ещё пробовал такой вариант:

Код: java
1.
2.
3.
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)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971456
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir,

Сделайте пример из сети или книги. Что вы гадаете наобум?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971457
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir,

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

Если namePost - это поле в таблице Predictionlevelwater , то так:
Код: java
1.
2.
3.
Query q = sessionFactory.getCurrentSession().createQuery("DELETE FROM Predictionlevelwater WHERE namePost = :namePost");
q.setParameter("namePost", namePost);
q.executeUpdate();
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971459
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий Мух
Vlad__i__mir,

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

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



namePost - это свойство у объекта, который является значением поля в таблице 22154615
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971460
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp, везде примеры проще, без условия с ссылкой на свойство объекта, хранящегося в таблицк
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971465
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Дмитрий Мух
Vlad__i__mir,

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

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




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

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

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

Тогда мы сначала попробуем написать соответсвующий SQL запрос, а потом уже вызвать его средствами Hibernate.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971467
xerxf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Vlad__i__mir,

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

https://docs.spring.io/spring-data/jpa/docs/1.5.0.RELEASE/reference/html/jpa.repositories.html
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971468
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий Мух,
В таблице Predictionlevelwater есть поле - это поле FK, FK ссылается на таблицу Post, у которой есть поле namePost.

Поэтому я в запросе и ссылался через точку, как бы обращаясь к полю объекта:
автор"DELETE FROM Predictionlevelwater e WHERE postId.namePost=:namePost"
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971471
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir,
Если FK, то это число.
Если удаляете не по нему а имени то должен быть join.
ОТЛАЖИВАЙТЕ ЗАПРОС В ПРОГЕ ДЛЯ БД. Без java.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971473
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir,
2. Если немного элементов то можно удалять в цикле по коллекции. Ведь орм и хибер все таки.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971475
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Сделал так:
1) нашел объект postId
2) выбрал из таблицы все записи с данным объектом
Код: java
1.
2.
3.
4.
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) с помощью цикла удаляю все объекты:
Код: java
1.
sessionFactory.getCurrentSession().remove(predictionlevelwater);



Конечно с точки зрения оптимальности алгоритм желает лучшего, но работает )
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971476
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir,
Есть рационально и есть оптимально.
Удачи!
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971477
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Дмитрий Мух,
В таблице Predictionlevelwater есть поле - это поле FK, FK ссылается на таблицу Post, у которой есть поле namePost.

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

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

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

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


Код: sql
1.
DELETE FROM Predictionlevelwater WHERE postId IN (SELECT id FROM Post WHERE namePost = :namePost)


Код: sql
1.
DELETE FROM Predictionlevelwater W WHERE EXISTS (SELECT 1 FROM Post P WHERE P.id = W.postId AND P.namePost = :namePost)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971478
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
PetroNotC Sharp,

Сделал так:
1) нашел объект postId
2) выбрал из таблицы все записи с данным объектом
Код: java
1.
2.
3.
4.
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) с помощью цикла удаляю все объекты:
Код: java
1.
sessionFactory.getCurrentSession().remove(predictionlevelwater);




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

Хорошо, что вы нашли решение. И всё же я бы на вашем месте подтянул знания по SQL и переписал без циклов, одним запросом.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971480
Vlad__i__mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий Мух, спасибо! 1-ый и 2-ой вариант мне в принципе понятен, JOIN пользоваться умею
Попробую ваш вариант.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971635
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad__i__mir
Конечно с точки зрения оптимальности алгоритм желает лучшего, но работает )

Да, у меня код типа такого и всё встаёт раком. Ява с гибернейтом уже где-то год в процессе выкидывания.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971645
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Да, у меня код типа такого и всё встаёт раком. Ява с гибернейтом уже где-то год в процессе выкидывания.


Из дотнетов порт хибера уже давно повыпилили, а в джаве смотрю процесс ещё идёт )
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971651
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Неужели один EF остался. Странно.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971680
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

Там томик такой хороший по хиберу, я так и не осилил. Шоб просто работало, надо изучить этот талмуд. Но это не факт. Да да, батхёрт неосилятора.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971800
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
hVostt,
Неужели один EF остался. Странно.


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


crutchmaster
hVostt,

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


Просто хибер это убер-вундервафля :) Видимо и джаве тож самое.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971803
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Главное чтоб из стека SpringData его убрали.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971820
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Дак дай хоть пару имен то.
Мы не в курсе тут, что там за горизонтом, в Net уже нового.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971847
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
hVostt,
Дак дай хоть пару имен то.
Мы не в курсе тут, что там за горизонтом, в Net уже нового.


EF
Dapper
PetaPoco
LiteDB
SqlSugar
FreeSql
ServiceStack.OrmLite
Insight.Database
RepoDb
MicroLite
...
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971931
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Просто хибер это убер-вундервафля :) Видимо и джаве тож самое.

- мне больше EclipseLink нравится
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971935
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov
hVostt
Просто хибер это убер-вундервафля :) Видимо и джаве тож самое.

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

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

В основном интересует простота исопльзования. Т.к. Хибер не может
похвастаться простотой.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971947
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В основном интересует простота исопльзования. Т.к. Хибер не может
похвастаться простотой.

- в смысле простоты монопенисуарно, хотя хибер, действительно как то поархаичней (больше возможностей - больше гемороев). Основной + от ЭклипсЛинка (на мой взгляд) - он лучше соответствует спецификации JPA
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971955
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Так там особо альтернатив и нет. Mybatis, jooq и jdbi и то это не орм, а маперы.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971956
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle TopLink?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971958
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,

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

Да всё работает, но дело в том, что оно при этом отправляет кучу запросов с бд. В этом его проблема. Да, как-то можно сделать в несколько, но это неоправданно сложно для гибернейт-нуба.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971962
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,

странно ты как-то читаешь...
где-то увидел ненависть к хиберу и при этом не заметил, что ТС уже опробовал предлагаемый тобою вариант
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971963
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И плодить в репозитории методы findByЧтоТоТам - это моветон :)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971964
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Некоторые вещи Hibernate не умеет делать. Или по крайней мере мне не получилось их реализовать
на уровне HQL/Criteria. Например в некоторых задачах обогащения справочников мне нужна была
команда UPSERT(это два в одном UPDATE/INSERT) в 1 сетевой раундтрип.

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

Компромиссы (попробовать-словить-эксцепшен-повторить) меня не устраивали. Это был highload и там
загрузка справочников должна проходить быстро.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971966
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
у нас супер нагруженная распределенная система...

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

12 запросов в секунду не тянет на супер нагруженную систему
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971967
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напомни jOOQ это платный продукт. Верно?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971971
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Дмитрий Мух
пропущено...

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

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

wat?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971972
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,

Ещё бы хибер из коробки миграции БД поддерживал, может и прожил бы на плаву дольш :)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971974
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
mayton
Напомни jOOQ это платный продукт. Верно?

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

Я пытался приспособить для толстого бизнеса (дата аналитика на MSSQL) jOOQ. У него хитрая лицензия. Похожа
на развод для лохов. Вобщем для Oracle/MSSQL (основной дорогой сегмент) надо будет платить.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971975
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Дмитрий Мух
пропущено...

wat?

What did you mean then ?

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

Или скажу иначе: не надо заливать нам чему нас учили и как обстоят дела сейчас
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971976
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
hVostt
Zzz79,

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

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


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

На плаву означает, что технология является одной из предпочтительных для новых проектов.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971979
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Дмитрий Мух
И плодить в репозитории методы findByЧтоТоТам - это моветон :)

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

Моветон так писать методы в репозитории, да и не по SOLID.
Открой для себя шаблон Спецификация.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971980
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Zzz79,

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

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

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

Поэтому хибер никогда не будет поддерживать миграции. Другой класс ибо.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971981
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
hVostt
Zzz79,

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

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

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

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


У хибера знания модели данных есть? Есть. Поддерживать изменения в модели на основе снепшотов можно? Можно :) Значит хибер мог бы, да не осилил. Итак слишком толстый
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971983
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Дмитрий Мух
пропущено...

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

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

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

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

Не тянет на супер нагруженную систему.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971985
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
mayton
пропущено...

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

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

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

Мне интересно как они с partitioning поступили. Oracle поддерживал PK+сложный partitionning по двум измерениям
(матрица типа). PG еле-еле поддерживает только одно из двух.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971986
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Zzz79
пропущено...

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

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


А всё равно продолжают так писать... До сих пор :-/
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971987
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
hVostt
Zzz79,

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

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

hVostt пишет про миграции схемы/структуры БД.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971989
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
как бы это нормально написать методы ,которые тебе нужны - они что кушать чтоли просят?)


Хех, вот именно, что просят. И кушать просят очень много :)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971990
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Дмитрий Мух
пропущено...

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

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

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

Нет, Стас, это реально моветон. Повторю: открой для себя шаблон Спецификация.
Ну и про SOLID почитай.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971992
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
mayton
пропущено...

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

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

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

Да и нечасто такой праздник.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971993
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А ну у всех толстых DBMS есть свой Migration Guide.
И все равно 100% автоматизация невозможна. Где-то придется вручную что-то делать.

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


Это зависит от. Некоторые людишки так и норовят влезть руками куда-нибудь, типа щас быстрее так, а потом всё идёт по п..е ))
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971995
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я своими руками смигрировал толстую CRM c MS-SQL на Oracle. И это было 90 ручная работа и скриптинг.

Да и нельзя там было автоматизировать. Там надо было хранимки просмотреть глазами и переосмыслить.
Сильно сомневаюсь чтоб хоть какой-то хибернейт это сделал. Что там... ИИ штоли?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39971998
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Дмитрий Мух
пропущено...

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

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

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

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

Лично у нас практически каждый релиз на базы накатываются какие-то миграции.
А релизы основного приложения у нас раз в месяц. Отдельных сервисов итого чаще.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972001
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
mayton
пропущено...

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

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

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

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

Я вот это имел в виду https://docs.oracle.com/database/121/DRDAA/toc.htm
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972006
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Дмитрий Мух
пропущено...

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

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

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

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

А hVostt когда писал "Ещё бы хибер из коробки миграции БД поддерживал", то имел в виду переход базы данных от старой схемы к новой.
То есть когда мы меняем модель, добавляем в нее какие-то новые свойства или удаляем некоторые свойства.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972009
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я своими руками смигрировал толстую CRM c MS-SQL на Oracle. И это было 90 ручная работа и скриптинг.

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


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

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

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

Плюс, хорошо помогает для интеграционных тестов в некоторых сценариях, где не используются специфичные для СУБД инструкции и запросы.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972010
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Я понял о чём вы.

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


Семантика слова "миграция" слишком широкая )
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972011
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Там надо было хранимки просмотреть глазами и переосмыслить.


Собственно в том числе поэтому я обычно говорю, что хранимок лучше избегать :)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972012
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
солид я читал - звучит красиво - но все клали на это))


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

Уже сколько лет задаю этот вопрос.... похоже плохой это термин (точнее, аббревиатура), трудный для понимания.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972014
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOLID - это философия. Как ты можешь придумать метрику
насколько один проект философичнее (философнее?) другого?

Мы даже взяв первую буквочку (S) Single-Resp уже уходим в сложные не инженерные понятия.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972015
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
Я своими руками смигрировал толстую CRM c MS-SQL на Oracle. И это было 90 ручная работа и скриптинг.

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

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

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

Попробуй в форуме Oracle озвучить такую мысль. Только я отбегу подальше... чтоб не зацепило взрывной волной.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972030
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
))
Net'чики, у них другая философия,... И планета.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972047
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
но надо уметь пользоваться

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


P. S. мля, вот бы тому нытику из соседнего топика хотя бы 25% Стасовой самоуверенности, мог бы горы своротить (ну или хотя бы работу найти )
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972058
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79

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

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

Ни один сканер (ни Сонар ни FindBug) не детектируют SOLID.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972076
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не понимаю к чему ты клонишь. Не хочешь соблюдать солид - не соблюдай.
Пиши как бог даст. Только выложи коллегам на code-review и внимательно
слушай что они говорят.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972106
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79

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

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

Но я думаю что когда Java9/modules войдут в обиход - то рефлексию чуть-суть прибьют ближе к земле.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972107
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79

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

Single-Resp там речь идет не о том что тебе надо сделать 1 поле. А просто о том что
ты решаешь только одну маленькую бизнес операцию. Например есть SimpleDateFormatter.
Он - обеспечивает конверсию дат. Хотя он внутри себя может содержать тыщу полей.
Его респонсибилити - одна. FileInputStream - обеспечивает файловый хендлер на чтение.
Тоже одна отвественность. И если тебе надо компоновать все файлы с датой старше прошлого
года то ты компонуешь SimpleDateForm и FileInputStream. Они вместе решат эту комплексную задачу.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972139
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
SOLID - это философия. Как ты можешь придумать метрику
насколько один проект философичнее (философнее?) другого?

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


Никакая это не философия :)
Чем S не инженерное понятие?
S легко поддаётся метрике, например, количество тестов на юнит.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972140
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
hVostt
пропущено...

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

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

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


Это на любом форуме любой DBMS тебя распнут за упоминание ORM :)
Но это лишь показатель привязанности к определённым не самым эффективным, но при этом горячо любимым подходам к разработке.
Ну хочется людям вручную делать то, что легко за них делает компьютер, щто поделаешь.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972141
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
это все эфимерная шляпа)я давно уже понял это что все этип принципы и шаблоны на практике никто не юзает - а в 90% случаев ты зайдя в один из крупнейших РФ банков где то увидишь ДТО в котором есть сетеры сет 1,сет2 ,сет 3 ))) и так до бесконечности)


От того, что большая часть населения не может 2+2 сложить вовсе не означает, что математика это блажь для избранных и штука эфемерная.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972142
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ни один сканер (ни Сонар ни FindBug) не детектируют SOLID.


Ох, даже здесь наблюдаются трудности с тем, чтобы сказать -- как всё же реально использовать SOLID на практике. А ведь ответ на поверхности...
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972144
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Только выложи коллегам на code-review и внимательно
слушай что они говорят.


Вооо... :)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972169
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79

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

тот же батч

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


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


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


Э-э-э вообще-то Single-Responsibilty как раз про это.
Т.е. дизайн приложения и классов должен быть спроектирован так, что бы каждый класс отвечал за одно действие.
А когда у вас куча классов делает одно и то же... То что-то здесь не так.
Т.к. как раз ответственность размазана за какие-то действия размазана м/у этими классами.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972187
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
SOLID - это философия. Как ты можешь придумать метрику
насколько один проект философичнее (философнее?) другого?

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


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

Ну я написал 2 теста к примеру. Какие из этого следуют выводы?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972206
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну я написал 2 теста к примеру. Какие из этого следуют выводы?


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

Если так, значит ваш юнит скорее всего соответствует SoR.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972208
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас с тобой все таки разное понимание тестирования. У меня количество тестов соотвествует
количеству бизнес-сценариев. Я взял 1 логику и доказал ее формальную правоту с помощью
двух сценариев.

Следует из этого или нет SingleResp - я пока не знаю. Не уверен.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972242
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух
Открой для себя шаблон Спецификация.

- хрен редьки не слаще. Просто перенос сложности в другое место - вместо кучи методов, куча классов.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972243
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,

Действие по БЛ не равно методу класса
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972313
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79


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


Для этого есть другие страшные аббревиатуры DI и IOC ;-)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972346
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
У нас с тобой все таки разное понимание тестирования. У меня количество тестов соотвествует
количеству бизнес-сценариев. Я взял 1 логику и доказал ее формальную правоту с помощью
двух сценариев.


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

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


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


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

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

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

Мне трудно вообще вписаться в картину мира, где SoR вызвает такие проблемы. Реал. Это прям какое-то зазеркалье )
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972350
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо. Вот у тебя есть главный компонент. Application. Он контейнером в себя включает все другие
компоненты.

Как ты тестами покажешь что у него - SoR?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972359
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Хорошо. Вот у тебя есть главный компонент. Application. Он контейнером в себя включает все другие
компоненты.

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


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

Юнит-тест должен гарантировать, что эти абстракции будут вызваны правильно, а результат правильно обработан. Вместо реализации абстракций подставляются моки или стабы.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972363
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
Хорошо. Вот у тебя есть главный компонент. Application. Он контейнером в себя включает все другие
компоненты.

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


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

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


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

И... я дальше ожидаю словесной формулировки. Какая?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972369
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
hVostt
пропущено...


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

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


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

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

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

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

Когда сто процентное покрытие тестами такого вида, то очевидно, что Application только то и делает, что "вызывает реализацию через соответствующие абстракции".
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972391
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух

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



Это самое прекрасное определение Single-Resp.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972399
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Дмитрий Мух

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



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


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

А у вас что там находится?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972401
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты
ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность"

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


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

Больше ничего ваш Application делать не должен.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972409
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
OK. Я зайду с другой стороны. Ты закрыл все дочерние объекты Application моками. И дальше прогнал тесты
ты такой говоришь. "Окей ребята. Ща я докажу что у Application - одна единая отвественность"

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


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

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

Воооот. Вот поэтому я это и называю фи-ло-со-фи-я. Мдя.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972418
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Воооот. Вот поэтому я это и называю фи-ло-со-фи-я. Мдя.


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

Философия? Нет.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972421
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хвост.

Ты знаешь, когда Иогана Баха спросили как это он так ловко и хорошо играет на органе - он ответил
- Ничего сложного! Я просто своевременно нажимаю соотвестсвующие клавиши.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972425
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
соотвестсвующие
"Вовремя нажимал нужные"
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972430
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Хвост.

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


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

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

Или проблемы в понимании вызывает только один единственный принцип SoR из солид?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972433
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
Мое имхо что прогер всегда был художником)))
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972434
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
mayton
Хвост.

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


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

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

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

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

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

Тут нужно наверное зайти со стороны базового интерфейса например. А тогда зачем тесты?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972436
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте вот посмотрим на этот интерфейс.

Код: java
1.
2.
3.
4.
5.
interface IConverter {

 @NotNull Object from(@NotNull Object object);

}



Он - реализует SingleResp?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972446
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Он - реализует SingleResp?

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

хотя с другой стороны, наличие кучи методов с интересными названиями может уже и в интерфейсе намекать о нарушении
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972448
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
был
На самом деле - нет, не был программист художником .
Было время, когда можно было долго пилить сложный проект в одиночку или небольшой слаженной группой.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972454
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
PetroNotC Sharp
был
На самом деле - нет, не был программист художником .
Было время, когда можно было долго пилить сложный проект в одиночку или небольшой слаженной группой.

Ты написал "нет", но не обосновал.
А счас пишут проекты большой группой?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972456
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Тестируют фнкционал. А интерфейс - контракт. Или Намерения.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972459
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
mayton
Он - реализует SingleResp?

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

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

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

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

Пример ФИ : Function<T,R>, Consumer<T>, Supplier<T>.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972466
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
но не обосновал.
Не стал повторять аргументы мистера Брукса, изложенные в книге "Мифический человеко-месяц".А счас пишут проекты большой группой?В основном - работу работают. А это - всегда быстро. А большая группа - основной способ сделать быстро.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972467
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Хорошо. Тогда я предложу такое определение.

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

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

х.з., ну наверное :) , скажем так, в их контракте ничто не предвещает. впрочем как и в предыдущем примере
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972479
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
PetroNotC Sharp
но не обосновал.
Не стал повторять аргументы мистера Брукса, изложенные в книге "Мифический человеко-месяц".А счас пишут проекты большой группой?
В основном - работу работают. А это - всегда быстро. А большая группа - основной способ сделать быстро.
Как и было. Кодировщик делает строго по ТЗ. Программист каждую строчку думает как лучше - художник.
Есть как первые так и вторые всегда и везде.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972481
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Давайте вот посмотрим на этот интерфейс.

Код: java
1.
2.
3.
4.
5.
interface IConverter {

 @NotNull Object from(@NotNull Object object);

}




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


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

Но интерфейс следует по контракту SoR, так как выполняет только одну задачу: конвертирует экземпляр одного типа в другой тип (или тот же, в контракте не декларируется).
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972483
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Видишь ли в чем дело тут.... Модульный тест просто показывает наличие какого-то то свойства у модуля.

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

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


Юнит-тесты тестируют реализацию (юнита).
Интерфейсы же позволяют протестировать конкретную реализацию изолировано от зависимостей.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972486
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Говори - простт классы. Зачем добавка про интерфейсы?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972487
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот как прекрасно. Тоесть если мы слегка поднажмём на контракт - то получим в правой руке искомое.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972495
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разумеется многие посмотрев на код скажут. Mayton ты што опух? Тут и так воочию видно (очевидно) что этот чортов класс
Single-Resp. Я говорю - окей. Допустим я опух. Можно эту очевидность формализовать? Один вариант предложил Хвост.
Он считает что надо тестировать и через тестовые сценарии доказывать что там БОЛЬШЕ ничего нет. Кроме того что надо.
Я говорю окей. А можно декларативно? Тоесть мы можем так декларировать класс чтоб... .комар носа не подточил!
Чтоб..... Броня!!! Чтоб как каменюка стояла это панимаешь сингле-респонсибилити.

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


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

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


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

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


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

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

Полагаю на заре дисциплины, декомпозиция программы на процедуры могла вызывать такой же батхёрд у мамонтов программирования с их километровыми листингами, напичканными GOTO
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972499
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

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

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

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

Но ответ лежит на поверхности, особенно для людей, работающих в команде с применением код ревью.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972546
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хвост. Я тебе честно скажу что я SOLID иногда нарушаю. Ну просто не всегда удаётся следовать такому себе
философскому идеалу. Тут еще трудность в том что когда в код смотрят 2 человека, каждый из них видит своё.

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

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

И это мы еще только первую букву (S) разбирали.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972550
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

что, даже при реализации такого шаблона как репозиторий не получается следовать приниципу единственности ответственности?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972552
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто SOLID я упомянул в контексте реализации репозитория, а дискуссию развили так, что типа SOLID - это философский идеал.
И типа напрашивается вывод, что даже пресловутый репозиторий фиг напишешь по этим принципам
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972558
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Хвост. Я тебе честно скажу что я SOLID иногда нарушаю.


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

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


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

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

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


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

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


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

Вполне уместно рассмотреть на примере репозитория, о чём говорит skyANA.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972630
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,
В java в отличии от шарпа есть JPA.
И поэтому пример от skyANA мимо.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972744
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
В java в отличии от шарпа есть JPA.


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

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

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

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

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



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


Т.е. если у тебя есть JPA, тебе не нужен репозиторий? )))
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972749
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
PetroNotC Sharp
В java в отличии от шарпа есть JPA.

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

Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас
появятся корректировки и дополнения к твоей фразе.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972765
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Хвост я думаю что ты что-то неверно сформулировал. Или если мы дадим определение JPA/Hibernate - у нас
появятся корректировки и дополнения к твоей фразе.


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

Скорректируешь?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972784
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972831
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Просто ты написал - нашлёпка. А спека не может быть нашлёпкой. Вот я и засомневался.


Ясно ) Ну нашлёпка же, над хибером. При чём если ты используешь расширенные возможности хибера, то смысл в спецификации становится всё менее ценным, так как на другую реализацию уже перейти не получится в принципе.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972931
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
языка JPQL основан на HQL

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

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

- значит, при наличии планов смены ORM, надо следовать спецификации JPA
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972947
Фотография 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.

Опять врут и темнят? )
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972948
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov
- значит, при наличии планов смены ORM, надо следовать спецификации JPA


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

Это так, небольшой наброс )
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972983
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt,

>Т.е. если у тебя есть JPA, тебе не нужен репозиторий? )))
Он и в шарпе не нужен. Он уже написан в EF. Это skyANA носится с ним по всем веткам.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39972984
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Kachalov
- значит, при наличии планов смены ORM, надо следовать спецификации JPA


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

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

Менять не будут. Просто их все построили и причесали под одну гребёнку))))) Под один интерфейс.
Имхо более половины проектов на JPA
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973036
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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":
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973043
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Kachalov
- значит, при наличии планов смены ORM, надо следовать спецификации JPA


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

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

Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973056
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.

- в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко (проблемы там где делают unwrap и хардкодят хинты - но ... сами понимаете, это по сути дурной тон кодирования). Хотя, если быть честным, в большинстве проектов используют Hibernate и никаких предпосылок использовать что то иное нет)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973073
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov
mayton
Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.

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

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

Это как говорим Ксерокс - подразумеваем некий *Noname* копировальный аппарат.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973094
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тоесть говорим ORM - подразумеваем Хибернейт.

- я бы сформулировал иначе) Говорим ORM, подразумеваем JPA (хотя есть крупные EE проекты где работают без JPA - например Diasoft в некоторых своих широко внедренных проектах использует Apache Cayenne или Google App Engine, где применяют JDO, есть и проекты на iBATIS).
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973106
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov
mayton
Я думаю что для какого-нибудь ентерпрайза смена ORM - подобна смерти будет.

- в большинстве проектов работают в рамках JPA (а хинты выносят в настройки), поэтому смена ORM проходит достаточно легко
Ну вот если смотреть на хибер, то у него таки-много расширений JPA направленных на улучшение производительности, так что есть сомнения, что слезть "прооптимизированной" хиберовской модели будет просто.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973188
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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":


Не знал :) Но чему тогда верить? И зачем столько тьмы в простом вопросе?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973252
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Но чему тогда верить? И зачем столько тьмы в простом вопросе?

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

hVostt

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

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

- зачем возлагать на ORM дополнительную логику? Данные должны быть отмаплены на БД и закэшены, там где можно - большего от ORM не требуется
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973253
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Ну вот если смотреть на хибер, то у него таки-много расширений JPA направленных на улучшение производительности, так что есть сомнения, что слезть "прооптимизированной" хиберовской модели будет просто.

- что может быть лучше Native SQL в смысле производительности? (вопрос провакациононный)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973263
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хибер хорош пока никто не пытается в context прогрузить всю базу
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973362
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Kachalov
пропущено...

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

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

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

А SQL знать просто надо. Это как латынь среди врачей. Единый язык на котором
можно описывать данные. И создал его математик. Это ... не коллекции с аррейлистами
и не циклы крутить. А теория множеств.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973365
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov
hVostt
Но чему тогда верить? И зачем столько тьмы в простом вопросе?

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


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

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


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

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

Собственно такие проекты, как Hibernate пытались обобщить множество подобных решений под одной крышей. Поэтому ORM это давно не только маппинг. Обычно там и репо и UOW, и свой язык запросов, кеширование, отслеживание изменений, аудит, точки расширения и т.д.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973376
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79

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

А расскажи как ты себе сам смысл батча понимаешь? Может они были правы да ты просто не про то думал.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973394
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
тоесть вот у меня на проде сервак 16 гиг -полностью выделен под мой сервис - какого хрена я должен юзать батч для отправки распарсенного csv- ну это же просто смешно

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


А вам повезло с лидом.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973395
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
и вообще конечно каждый прогер должен хотя бы немного отдуплять куда его приложение ставится


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

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

версия для слабодумающих )
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973427
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется чрезмерное потребление памяти - просто признак другой проблемы. Например бизнес-сущности
дублируются в памяти. Каждый поток владеет независимой копией хотя по бизнесу - сущности уникальны.
Многие операции агрегации могут быть выполнены очень быстро и эффективно в БД (SQL) или BigData,
без перекачивания их на сторону App.

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

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

Кстати для GC класса Parallel простое бездумное увеличение Xmx приводило к новой проблеме. К фризу потоков
которые обслуживали сетевые сокеты и как следствие появлялись новые сетевые ошибки еще более
сложные и комплексные чем просто OOM. Как реагирует G1GC на простое растягивание памяти - непонятно.
Возможно в меньшей степени но тем не менее фризы надо регулировать доп-параметрами.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973459
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,

>он отправляет порциями файл- как еще
Сишник наверно.
Они любят буфера, кеши, батчи.
Чтобы записать строку будут буфер под нее выделять и частями копировать.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973460
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
Kachalov
- что может быть лучше Native SQL в смысле производительности? (вопрос провакациононный)

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

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

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

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

- какой то беспредметный наезд. Я работал в разных проектах (в том числе ... бла-бла-бла ... сейчас это ЕМИАС) и нативные запросы, необходимость их оптимизации и пятиэтажные джойны с позапросами - не редкость (и эффект на производительность бывает более чем существенным). Лично я не считаю что native sql -это правильный путь однако плевать на производительность даже PetShop глупо. Когда дебильный код работает у разраба на трех записях в базе - это не значит что он будет так же хорошо работать на нескольких миллионах записей на проде. В ЕМИАС, например, записей довольно много а скорость выполнения запроса (метода) это критический параметр который лимитируется, а вот кластеризация "утюга", к сожалению, не повышает скорость выполнения отдельных методов, что накладывает обязательства на архитектора и разработчика, так как тупым увеличением мощности железа вопрос не решается
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973462
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt

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

- Вы зачем то начали форсить тему "кто на ком стоял", я Вас поправил, что история более сложная чем это написал хз кто в википедии. Если для Вас это важно, можно дискутировать дальше, хотя мне этот вопрос кажется не существенным.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973465
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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])

Я тему не с потолка взял. Написано и очевидно из истории. Зачем вы тут пытаетесь какое-то РенТВ включать, тёмная история бла-бла-бла, в чём смысл? :)
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973467
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
лид у нас хороший,но вот с этой батч системой я в корне не согласен- в текущих реалиях это GAS FACTORY


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

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

Но у вас замечательный лид, который заставляет носить каску везде, и не важно на каком участке стройки вы там ходите.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973469
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov
чем это написал хз кто в википедии


Вот это пренебрежительное отношение к вики никогда не понимал. Там вообще-то источники есть со ссылками. И типа никто из тысяч разработчиков не спохватился не бросил исправление. Ну-ну.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973470
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
mayton
пропущено...

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

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

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

P.S. Большие раки по 5 рублей...
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973477
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Zzz79
пропущено...

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

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

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

Снаружи никакой. А прогерам оверхед.
В ТЗ должно быть записано какой максимальный размера файл поддерживает код.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973481
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Kachalov
чем это написал хз кто в википедии


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

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

Еще раз сошлюсь на источник (состав авторов и их регалии есть в предисловии) Persistence in the Enterprise: A Guide to Persistence Technologies
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973485
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там с размером файла вобщем не связано.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973486
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Там с размером файла вобщем не связано.
фиг знает.
Бъёт на куски нижний системный уровень/транспорт.
Прикладной ли уровень в его рассказах выше хз.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973487
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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. Путешествия сетевых
пакетов туда и обратно.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973575
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov
- так скажите кто написал статью в вики? давно он с JPA знаком? а хибер когда впервые увидел? Все это напоминает рассказы современных школьников о жизни в СССР.


Кто "он"?


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


Не вижу противоречий.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973615
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Кто "он"?

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

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

- не вижу в Вики слова JDO, Kodo и TopLink, но убеждать сторонников плоскоземелья в том что Земля круглая - себе дороже. А если говорить конкретно про JPA и Hibernate (какого года там рождения первый коммит?), то припоминается что запросы на птичьем языке были еще CMP-компонентах в EJB 1 (а это 1998 год) и что Apache Cayenne (он тогда иначе назывался) появился одновременно с хибером, но конечно это ничего не значит - гениальные разработчики хибера свалились из параллельной вселенной и ничего об этом не знали. Ну и до рождества Христова не было других религий и монотеизма.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973627
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется что информационна ценность wiki - в ссылках на статьи и литературу которая прикреплена внизу.

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

Это очень сильно снижает ценность русской вики как источника информации.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973782
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Хибер хорош пока никто не пытается в context прогрузить всю базу
и если его используют для десктопа
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973783
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
вопрос в том зачем она тебе эта производительность?
что такое производительность в рамках облачных технологий и современных серверов ?
как бы тогда никто не задумывался про масштабируемость...
и нагрузочные тесты
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973793
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79
а еще у нас по моему мнению ипанутый кэш)
что такое кэш в нормальном его понимании- запрос был - положили в кэш

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

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

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

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

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

Если они - не happy - то ты моменьтально почувствуешь это на кармане.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973816
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Когда от системы требуется быстрый отклик (типичный случай для систем опер-дня)
то пускай они стартуют хоть целый час. Не жалко с 7.00 до 8.00 кеши прогревать.
А если от этой процедуры отказаться - то очевидно что бизнес-процессы будут
каждый раз делать интеракцию с БД для каждого нового значения в справочнике
но тут есть и другой взгляд - все субд заточены на хорошую нагрузку, и если для нормальной работы используется какое-то кеширование - может работа с субд сделана через жопу?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973819
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,
Есть вполне конкретные метрики ЭФФЕКТИВНОСТИ КЕША.
Можешь изучит вопрос и доказать, что всё грузить в память неэффективно
https://studfile.net/preview/2282202/page:7/
Но вполне может быть, так как памяти навалом, это не доказать.
Так как все справочники влазят в память.
Кеш хорош когда нет резиновой памяти.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973820
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
mayton
Когда от системы требуется быстрый отклик (типичный случай для систем опер-дня)
то пускай они стартуют хоть целый час. Не жалко с 7.00 до 8.00 кеши прогревать.
А если от этой процедуры отказаться - то очевидно что бизнес-процессы будут
каждый раз делать интеракцию с БД для каждого нового значения в справочнике
но тут есть и другой взгляд - все субд заточены на хорошую нагрузку, и если для нормальной работы используется какое-то кеширование - может работа с субд сделана через жопу?

Тебе обязательно надо поговорить с ребятами из Сбербанка.
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973824
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Хорошая нагрузка это сколько в граммах?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973829
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тебе обязательно надо поговорить с ребятами из Сбербанка.
это что-то изменит?



PetroNotC Sharp
Хорошая нагрузка это сколько в граммах?
100г/кг
устроит?
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973830
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
mayton
Тебе обязательно надо поговорить с ребятами из Сбербанка.
это что-то изменит?

Да... Пожалуй не говори. Я боюсь что они увидят твой "серверный рендеринг"
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973831
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Да... Пожалуй не говори. Я боюсь что они увидят твой "серверный рендеринг"
если они применяют принципы для десктопов к серверным приложения - то с ними бесполезноразговаривать
...
Рейтинг: 0 / 0
Удаление записей соответствующих условию из БД в Hibernate
    #39973833
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох уж эти субботние топики.

Всем - спать срочно.
...
Рейтинг: 0 / 0
168 сообщений из 168, показаны все 7 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Удаление записей соответствующих условию из БД в Hibernate
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]