2016-10-25 5 views
0

Какой из них использовать для пропуска поля, сохраняющегося в сущности?Непрерывные поля: JPA '@Transient' против Java SE 7 'transient'

@Transient используется как часть JPA игнорировать поле из сохраняющегося

переходной ключевого слова в Java используется для указания того, что поле должно не быть сериализуются и сохраняется (Спецификация Java SE 7 издание)

Я проверил оба, и для обоих нет столбца генерируется в базе данных:

Субъект:

@Entity 
public class Person implements Serializable{ 
    private static final long serialVersionUID = 1L; 
    @[email protected](strategy=GenerationType.IDENTITY) 
    private long id; 
    private String name; 
    private String forname; 

    @Transient 
    private String nickName; 

    private transient String pseudo; 

Сформированная таблица:

+0

"переходный" не имеет ничего общего с сохранением ... это предотвратить сериализацию и ничего больше. «persistence»! = «serialization» –

ответ

0

Вы должны использовать переходные, в соответствии со спецификацией

+0

@Transient также относится к спецификации (JPA) .... можете ли вы утверждать свой выбор? – Riadh

+1

@Transient используется для сохранения, а не для сериализации, это то, что я хочу сказать, когда рассказываю о спецификации, вы запрашиваете сериализацию. – Trigon219

+0

Ну @ ​​Trigon219, но я сказал вам в прикрепленном изображении, я ищу упорство в базе данных ... И оба дали тот же результат .. ни один столбец не создан для соответствующих полей ... – Riadh

Смежные вопросы