Is it possible to generate a default value for a c

2019-08-03 10:20发布

问题:

Env: JPA 1, Hibernate 3.3.x, MySQL 5.x

We auto generate database schema using hbm2ddl export operation. Would it be possible to generate a default value for a certain @Entity member during SQL generation. (e.g. archive field in mytable entity class.

create table mytable (
...
'archive‘ tinyint(1) default ’0 ’,
...
)

回答1:

There is no portable way to do that and the columnDefinition "trick" is definitely not a good solution. Actually, setting defaults in the generated DDL is just not a good idea, this would require the provider to go back to the database to see the result after an insert1. Better default in your Java code.

1 Just in case, note that you can tell Hibernate to do that using the @Generated annotation.