powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate проекции
10 сообщений из 60, страница 3 из 3
Hibernate проекции
    #39252546
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oneHalf,
ну, 100к записей конечно требуют других решений и ПО.
...
Рейтинг: 0 / 0
Hibernate проекции
    #39252579
oneHalf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLAP то ли был то ли с какого то времени попал в CE:
http://www.jaspersoft.com/editions?_ga=1.13558455.1204738042.1465372091

Без плюшек, конечно, но движок поставляется нахаляву :)
...
Рейтинг: 0 / 0
Hibernate проекции
    #39252585
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
oneHalfБез плюшек, конечно, но движок поставляется нахаляву :)
Прикольно. Буквально несколько месяцев назад сравнивал. Про OLAP не помню. Но ETL точно не было. Теперь есть в CE. Видать гонятся за Pentaho.
...
Рейтинг: 0 / 0
Hibernate проекции
    #39255883
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНа мой взгляд, первый запрос намного более "правильный". C join, можно словить ряд приятность, если creationDate не уникальная. В данном случае, с limit 1 это не проявится, но лично я такие конструкции не люблю.

В знакомых мне СУБД, max/min ничем не лучше order by с limit. Мне даже кажется, что в Oracle, этот вариант будет намного хуже.

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

а дальше просто выбираем эту самую запись .. что в общем случае быстрее чем order by limit 1 /// в инете полно проблем для постраничного вывода как раз mysql order by limit 1 https://habrahabr.ru/post/217521/

Вопрос как этот запрос написать на DetachedCriteria

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
       DetachedCriteria maxCriteria = DetachedCriteria.forClass(SoldTickets.class, "sq")
                .setProjection(Projections.max("transactionId"));
        maxCriteria.add(Restrictions.eq("login", login));
        maxCriteria.add(Restrictions.eq("terminalId", terminalId));
        
        DetachedCriteria criteria = DetachedCriteria.forClass(SoldTickets.class, "rq");

 

        criteria.add(Subqueries.in("rq.transactionId", maxCriteria));

        List<?> items = ht.findByCriteria(criteria);



вроде как генерит верный код ,но ругается вот на что ...

java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    select
        this_.`transactionId` as transact1_1_0_,
        this_.creationDate as creation2_1_0_,
        this_.login as login1_0_,
        this_.terminalId as terminalId1_0_,
        this_.`ticketForSale` as ticketFo5_1_0_ 
    from
        `SoldTickets` this_ 
    where
        ? in (
            select
                max(sq_.`transactionId`) as y0_ 
            from
                `SoldTickets` sq_ 
            where
                sq_.login=? 
                and sq_.terminalId=?
        )



видимо тут засада

Код: java
1.
2.
3.
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long

criteria.add(Subqueries.eq("rq.transactionId", maxCriteria));
...
Рейтинг: 0 / 0
Hibernate проекции
    #39305620
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaTBlazkowicz,
"сводной" ее делать надо средствами хибера - ну там хитрые критерии каскадного вида, проекции и т.п. либо же просто перетасовкой коллекций. вот и всё.

Экспортирую таблицы из хибернейт базу. Типичный запрос на каждую таблицу:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
    select assetDisplayName, assetId, x.keyName, x.value  from asset a
     JOIN PersistentEntityNode  pn ON pn.fqn = a.assetId + '/CUSTOM'
     JOIN PersistentEntityEntry pe ON pe.NODE_ID = pn.NODE_ID
     JOIN CustomProperties_CustomPropertyValue cv ON cv.CustomProperties_persistanceId = pe.entityId
     JOIN  (SELECT cp.*, vt.persistenceId, vt.value
         FROM customproperties_meta_key cp
         JOIN CustomPropertyValue   vt  ON vt.propertyKey = cp.keyId
         WHERE cp.keyId LIKE 'ASSET_USER_Custom%'
    )x ON x.persistenceId = cv.customProperties_persistenceId



Причем чтобы реверсинжениритиь это занимает часов 5 минимум.
В базе полсотни таблиц.

Теперь вот скажите как человеку решившему прикрутить репорт или сделать экспорт выташить данные? Я бы авторов этих ОРМ систем душил бы в детстве.
...
Рейтинг: 0 / 0
Hibernate проекции
    #39305641
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LepsikПричем чтобы реверсинжениритиь это занимает часов 5 минимум.
ничё не понял.
ОРМ и хибер не строят БД и не делают структуру БД.
Они только подстраиваются под вашу логически и физически правильную структуру таблиц.
Поэтому что вы делали 5 часов непонятно.
...
Рейтинг: 0 / 0
Hibernate проекции
    #39306373
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ничё не понял.
ОРМ и хибер не строят БД и не делают структуру БД.


Ну это не совсем так.
Hibernate на основе entity может создать БД.
Точнее - таблицы, ключи (первичные и внешние), sequence.
Причем если точно не описывать в аннотациях, то у Hibernate есть свои "умолчания", по которым он будет строить БД.
...
Рейтинг: 0 / 0
Hibernate проекции
    #39307087
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulHibernate на основе entity может создать БД.
может. Это не значит что это штатная операция в боевой БД у заказчика?
Это так - игрушка. Не более того.
Ты сам понял, зачем в БД у заказчика - JOIN PersistentEntityEntry?
...
Рейтинг: 0 / 0
Hibernate проекции
    #39307453
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123mad_nazgulHibernate на основе entity может создать БД.
Ты сам понял, зачем в БД у заказчика - JOIN PersistentEntityEntry?

как вы прикрутите сторонний компонент к базе если он понимает только плоские таблицы?
...
Рейтинг: 0 / 0
Hibernate проекции
    #39307471
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik,
Переведи абракадабру.
Сторонние компоненты прикручивают к боевой базе заказика только при отсутствии ТЗ и безопасников в штате.
...
Рейтинг: 0 / 0
10 сообщений из 60, страница 3 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate проекции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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