By default if I create a field in an entity like:
@NotNull boolean myBoolean;
And I let Hibernate auto-create my tables. What Oracle data type will this map to?
A BOOLEAN data type enables you to represent logical values. In code, BOOLEAN values are represented by values for "no" and "yes" (in any combination of uppercase and lowercase characters).
The Oracle RDBMS does not support a Boolean datatype. You can create a table with a column of datatype CHAR(1) and store either “Y” or “N” in that column to indicate TRUE or FALSE. That is a poor substitute, however, for a datatype that stores actual Boolean values (or NULL).
As @Arthur said it maps to Number(1)
which would be the standard sql bit where 0 == false
and 1 == true
. As an alternative you can map char(1)
to 'T' or 'F' like this
@org.hibernate.annotations.Type(type="true_false") @NotNull boolean myBoolean;
or map it to 'Y' or 'N'
@org.hibernate.annotations.Type(type="yes_no") @NotNull boolean myBoolean;
Simply Number(1)
If you want, use SchemaExport to generate a script to your target database. Something like
AnnotationConfiguration configuration = new AnnotationConfiguration(); configuration .addAnnotatedClass(<TYPE_YOUR_CLASS>.class) .setProperty(Environment.USER, <TYPE_YOUR_USER>) .setProperty(Environment.PASS, <TYPE_YOUR_PASSWORD>) .setProperty(Environment.URL, <TYPE_YOUR_URL>) .setProperty(Environment.DIALECT, <TYPE_YOUR_DIALECT>) .setProperty(Environment.DRIVER, <TYPE_YOUR_DRIVER>); SchemaExport schema = new SchemaExport(configuration); schema.setOutputFile("schema.sql"); schema.create(<DO_YOU_WANT_TO_PRINT_TO_THE_CONSOLE>, <DO_YOU_WANT_TO_EXPORT_THE_SCRIPT_TO_THE_DATABASE>);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With