powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / пара вопросов о hibernate&jsf
5 сообщений из 5, страница 1 из 1
пара вопросов о hibernate&jsf
    #33558414
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
база mysql
1. если у меня есть поле класса типа String а я хочу отображать его на text а не на char(255)
то аннотация /**
*@hibernate.property
* sql-type="text"
*/
не помогает, как быть.
если я делаю такую выборку
"select a_user.activities from model.TUser as a_user"
где activities это связанный список, и затем исследую данную структуру через рефлекцию то вижу не сам класс TUserActivity а подмененный hibernate похоже для реализации lazy load - TUserActivity$$CGI$$какая_то_чушь,
как мне для конкретного класса сказать что я хочу загрузить его по настоящему даже не из запроса, в общем случае если у меня есть класс TX и его объект x как проверить что это именно мой объект а не прокси и выполнить его загрузку из базы если это прокси.

для организации подчиненных записей есть варианты set, list, array
два последних требуют наличие поля index я незнаю как назначить этот идекс если у меня в базе нет ничего физически упорядочивающего записи, криво как-то, т.е. например если я делаю индексом поле id подчиненной таблицы то у меня получаются пробелы в элементах list:
a [] = {null, Object1, Object2, null, Object3, null}
если я использую фиктивное поле например UserOrder_Fict то возникает вопрос как мне давать эти номера полю, в случае одновременной работы нескольких пользователей, существует ли возможность создать слушателя который бы непосредственно перед сохраннием объекта в базу мог бы выполнить поиск последнего UserOrder_Fict и для нового объекта сделать его UserOrder_Fict + 1 .
тут дело в том, что созданные мною объектные иерархии я хочу представлять в jsf dataTable а в качестве источника данных для ее можно давать только массив, список, ResultSet, dataSource так подходящего для меня set - нет.
или же я должен для каждого ассоциированного к объекту set делать метод адаптер который будет возвращать копию set но в виде array

далее я могу написать запрос вида select count(distinct a_try.activity) from TTry a_try where a_try.completed = true
ведь запрос с count distinct специфичен для mysql для того же mssql его нет, значит hiberbnate не дает мне абстрацию от используемой бд и я пишу не переносимый код?

как писать запросы вида select a_try.activity from TTry a_try where
not exists (select 1 from TUser a_user where a_user.activity.try = a_try)
т.е. использующие подзапрос.

далее как включить такой уровень журналирования отправки запросов в который будут включены не только запросы вида
insert into foo values (?,?,?)
но и конкретные значения подставляемые вместо ?
...
Рейтинг: 0 / 0
пара вопросов о hibernate&jsf
    #33560169
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где activities это связанный список, и затем исследую данную структуру через рефлекцию то вижу не сам класс TUserActivity а подмененный hibernate похоже для реализации lazy load - TUserActivity$$CGI$$какая_то_чушь,

В общем случае, это нормально - т.е. при работе с Hibernate лучше всегда проверять принадлежность к классу не по его имени, а через instanceof. В вашем же конкретном случае скорее всего что-то использует lazy-loading

для организации подчиненных записей есть варианты set, list, array
http://hibernate.org/117.html#A5

авторYou need a seperate table column holding the array or List index (the i in foo )! If your relational model doesn't have an index column, use a Set instead. This seems to put people off who assume that List should just be a more convenient way of accessing an unordered collection. Hibernate collections strictly obey the actual semantics attached to the Set, List and Map interfaces. List elements don't just spontaneously rearrange themselves.

On the other hand, people who planned to use the List to emulate "bag"-style semantics have a legitimate grievance here. Fortunately you can map a List or Collection with bag semantics.


далее я могу написать запрос вида select count(distinct a_try.activity) from TTry a_try where a_try.completed = true
ведь запрос с count distinct специфичен для mysql для того же mssql его нет, значит hiberbnate не дает мне абстрацию от используемой бд и я пишу не переносимый код?

Это где вы такое можете написать?

как писать запросы вида select a_try.activity from TTry a_try where
not exists (select 1 from TUser a_user where a_user.activity.try = a_try)
т.е. использующие подзапрос.
http://www.hibernate.org/hib_docs/v3/reference/en/html/queryhql.html#queryhql-subqueries
...
Рейтинг: 0 / 0
пара вопросов о hibernate&jsf
    #33560860
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу Lazy-loading:
1) в маппинге для поля, которое должно быть загружено непосредственно из БД без создания прокси необходимо добавить атрибут
<ассоциация name="activities" ... outer-join="true"/>
2) в методы DAO, загружающих юбъекты через Criteria (если есть такие), добавить
crit.setFetchMode("activities", FetchMode.JOIN)

По поводу distinct вроде должно работать через Projection:
Criteria crit = getSession().createCriteria(TTry.class);
...
crit.setProjection(Projections.distinct(Projections.count("property")));

Подзапросы в Hibernate можно писать напрямую с использованием HQL или создавать динамически с помощью Criteria.

Для журналирования в самый раз подходит спринг.
...
Рейтинг: 0 / 0
пара вопросов о hibernate&jsf
    #33562593
BlackWall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.hibernate.org/315.html
...
Рейтинг: 0 / 0
пара вопросов о hibernate&jsf
    #34283515
unreger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как уложить вот такой запрос
select t1.a, s1.b, s1.c
from t1
join (select s1.b, count(s1.b) as c from s1 group by s1.b) on t1. ... = s1 ...

как оформить подзапрос?
можно ли получить результат подзапроса отдельно, а потом указать его как источник в основном запросе?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / пара вопросов о hibernate&jsf
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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