powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate и Projection
2 сообщений из 2, страница 1 из 1
Hibernate и Projection
    #37730948
DDiver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выбираю с помощью Criteria из БД объекты. Но мне нужны не сами объекты, а только определённый набор их полей(последовательность и количество определяет пользователь в GUI). Для этого применяю projectionList.add(Property.forName("fieldName"))
Но есть одна проблема, одно из полей объект :) целиком. И при попытке где-то снаружи вызвать его toString() вылетает LazyInitializationException. С примитивами понятно проблем нету. Пробовал crit.setFetchMode("declarant",FetchMode.JOIN) , не помогает. Есть ли какой-либо вариант кроме перебора всех полей в методе где сессия ещё есть(в сервис методе)?
Собственно как это примерно выглядит:
Это главный объект
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<hibernate-mapping package="*.*.*.objects">
    <class name="Complaint" table="COMPLAINTS">
        <id name="id" column="ID" access="field">
            <generator class="org.hibernate.id.enhanced.SequenceStyleGenerator">
                <param name="sequence_name">SSEQUENCE</param>
            </generator>
        </id>
        ...
        <many-to-one name="declarant" lazy="proxy" unique="true" class="*.*.*.objects.Declarant" cascade="all-delete-orphan">
            <column name="DECLARANT_ID" not-null="true"/>
        </many-to-one>
        ...
    </class>
</hibernate-mapping>


Это маппинг того объекта с которым проблемы:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<hibernate-mapping package="*.*.*.objects">
    <class name="Declarant" table="COMPL_DECL_LINKS">
        <!--<cache usage="read-write"/>-->
        <id name="id" column="ID" access="field">
            <generator class="org.hibernate.id.enhanced.SequenceStyleGenerator">
                <param name="sequence_name">SSEQUENCE</param>
            </generator>
        </id>
        <discriminator column="DECL_TYPE" type="string" length="2"/>
        <subclass name="JuridicalPerson" discriminator-value="UL">
            <join table="UL">
                <key column="DECL_ID"/>
                <property name="title" column="TITLE"/>
                <property name="INN" column="INN" length="10"/>
                <property name="KPP" column="KPP" length="9"/>
                <property name="largestTaxpayer" column="LARGETAXPAYER"/>
            </join>
        </subclass>
        <subclass name="PhysicalPerson" discriminator-value="FL">
            <join table="FL">
                <key column="DECL_ID"/>
                <property name="INN" column="INN" length="12"/>
                <property name="firstname" column="FIRSTNAME"/>
                <property name="surname" column="SURNAME"/>
                <property name="patronymic" column="PATRONYMIC"/>
            </join>
        </subclass>
    </class>
</hibernate-mapping>


т.к. я не знаю какой именно объект Declarant будет ассоциирован с главным Complaint, то я вижу единственный вариант это вытаскивать сам объект и у него уже вызывать toString()

Пока вижу только один выход - это сделать поле declarant lazy="false" при этом всё работает отлично.
может есть ещё какие варианты?
-----
Если дела идут плохо, есть вероятность, что в ближайшее время они пойдут ещё хуже.(с)Мерфи
...
Рейтинг: 0 / 0
Hibernate и Projection
    #37730968
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDiverЕсли дела идут плохо, есть вероятность, что в ближайшее время они пойдут ещё хуже.(с)Мерфи
есть мнение, не экономить на спичках. Т.к. это не SQL. Вытягивать все поля т.к. задержки минимальны.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Hibernate и Projection
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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