Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Когда надо использовать transient


Автор: slolennnn 27.11.2006, 20:11
У меня есть бин, который через Hibernate мэппиться в базу данных.
Но одно поле не надо мне сохранять в ней.
Я его оьявил transient.
Правильно это или нет.
Ведь это поле и так не описывается в конфигурационном файле Хибернейта?
Зачем вообще transient нужен и где его применять?

Автор: powerOn 27.11.2006, 21:04
Цитата(slolennnn @  27.11.2006,  20:11 Найти цитируемый пост)
Зачем вообще transient нужен и где его применять? 


Цитата

transient
Ключевое слово языка Java, которое определяет, что поле не является частью сериализуемой формы объекта. Когда объект сериализуется, значения его transient полей не включаются в представление сериализации, в то время как значения не transient полей включаются.


http://ru.sun.com/java/start/gloss.html

Насчет Hibernate не могу ничего сказать, но мне кажется (пяткой чую  smile ), что данный идентификатор здесь не помошник...

Автор: LSD 27.11.2006, 21:48
Не нужно, нужно просто правильно настроить маппинг.

Автор: tux 27.11.2006, 22:26
Transient действительно не при чем. Просто в маппинге поле не упоминай и все.

Автор: slolennnn 29.11.2006, 10:44
Спасибо

Автор: ParaPik 25.3.2009, 12:13
Я только что закончил изучать язык Java, но в книге не было подробно написано о способах применения transient. Да и вообще, было описано данное ключевое слов как-то неполно(всего 3-4 предложения). Вы не могли бы мне пояснить, что такое сериализация, когда она проявляется, и, если можно, небольшой пример, в котором используется transient

Автор: tux 25.3.2009, 13:14
Цитата(ParaPik @  25.3.2009,  12:13 Найти цитируемый пост)
Вы не могли бы мне пояснить, что такое сериализация

Это возможность сохранения в поток состояния объекта (в файл, например).
Цитата(ParaPik @  25.3.2009,  12:13 Найти цитируемый пост)
когда она проявляется

Когда хочешь сохранить, а потом восстановить объект.

http://www.java2s.com/Code/Java/Language-Basics/Demonstratesthetransientkeyword.htm.

Автор: ParaPik 25.3.2009, 20:48
Спасибо. То есть использование transient имеет смысл только, если класс, в котором есть поле с модификатором transient, реализует интерфейс Serializable.
 

Автор: tux 26.3.2009, 00:17
Совершенно верно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)