开发者

JPA/Hibernate DDL generation; CHAR vs. VARCHAR

I have a JPA/Hibernate data model that I am using the Hibernate hbm2ddl tool to generate database DDL. I have some strings that should be CHAR and some that may be VARCHAR in the database. I want to minimize hand editing of the DDL (I realize that some will have to happen).

Anyone know how I should go about this? I realize that I can make all Strings VARCHARS or CHARS via a hacked dialect, but that isn't what is always appropriate in the database.

I would like to be abl开发者_C百科e to do this with annotations or aop, avoiding custom column definition text in my classes.

Thanks.


Annotate the strings you want to map to a CHAR in the database with @Column(columnDefinition="CHAR(<your-char-length>)").


So, I finally found that you can specify a length limit for a type in the dialect. So, I've decided that anything under a length of 10 should be char and anything over that should be varchar:

registerColumnType( Types.VARCHAR, 10, "char($l)" );

That isn't exactly what I was wanting, but that is good enough. Sad that I didn't find that earlier.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜