2016-05-17 4 views
0

У меня есть Hibernate POJO, которое содержит поле boolean, и если объект еще не существует (т. Е. Когда новый создается), тогда я хочу, чтобы boolean значение поля по умолчанию - false. Как я могу это сделать, используя аннотации?У меня есть Hibernate POJO, который содержит поле «Boolean»

В настоящее время я использовал:

@Column(name = "IS_DELETED",columnDefinition = "Boolean DEFAULT new Boolean(false)") 
private Boolean isDeleted; 

@Column(name = "IS_DELETED",columnDefinition = "Boolean DEFAULT false") 
private Boolean isDeleted; 

мне нужно использовать это по умолчанию хранения нулевого значения .... даже следующий тоже не работают

@Column(name = "IS_DELETED",nullable=false,columnDefinition = "Boolean DEFAULT new Boolean(false)") 
private Boolean isDeleted; 
+4

Как насчет 'private Boolean isDeleted = false'? –

+0

То, что @AliDehghani предложил, является правильным ответом. Вам нужно либо установить значение по умолчанию в коде Java, либо в базе данных. Аннотации для добавления значения по умолчанию нет. – Ascalonian

+0

Вы также можете просмотреть аннотацию '@ PrePersist' в качестве обходного пути – Ascalonian

ответ

0

, что вам нужно использовать,

@Column(name = "IS_DELETED",columnDefinition = "tinyint(1) default 0") 
private Boolean isDeleted; 

Но это значение будет «False» при сохранении в БД, поэтому, если вы создадите сущность и значение будет NULL, поэтому я бы рекомендовал использовать значение по умолчанию, как некоторые люди уже сказал

@Column(name = "IS_DELETED",columnDefinition = "tinyint(1) default 0") 
private Boolean isDeleted = Boolean.FALSE; 

Но в этом случае ColumnDefinition обыкновение иметь смысл, никогда не будет использовать ... Это до вас, чтобы решить, что логически правильно с вашей бизнес-логикой

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