I have a oracle table which contains char(n) type for several columns. I use hibernate tools to create entities objets and this tool map char type in String.
But when I
There's some useful information here on this blog entry.
Essentially you need to make your hibernate configuration more specific, as it's assuming a default String mapping to varchar2(30).
You can try using the database-agnostic annotation of @Column(length=N) (where N is the actual length of your column in the database). If that doesn't work, try using the @Column(columnDefinition = "char") approach.
Doesn't work - fails Hibernate schema validation:
@Column(name="ENABLED_FLAG", length=1)
private String enabledFlag;
Does work, since the columnDefinition
attribute tells Hibernate not to default to VARCHAR2
as the column type, and to use CHAR
instead:
@Column(name="ENABLED_FLAG", length=1, columnDefinition="CHAR")
private String enabledFlag;
The column in the database is defined as:
ENABLED_FLAG CHAR(1 BYTE)