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