tipo funcion example dato column booleano booleana 11g oracle hibernate orm

example - funcion booleana en oracle



¿A qué asocia Hibernate un tipo de datos booleano cuando usa una base de datos Oracle de forma predeterminada? (3)

Por defecto, si creo un campo en una entidad como:

@NotNull boolean myBoolean;

Y dejé que Hibernate autocrease mis tablas. ¿A qué tipo de datos de Oracle se asignará este mapa?


Como @Arthur dijo que mapea al Number(1) que sería el bit sql estándar donde 0 == false y 1 == true . Como alternativa puede mapear char(1) a ''T'' o ''F'' como este

@org.hibernate.annotations.Type(type="true_false") @NotNull boolean myBoolean;

o asignarlo a ''S'' o ''N''

@org.hibernate.annotations.Type(type="yes_no") @NotNull boolean myBoolean;


Esto es lo que realmente necesitas

POJO de Java :

//@Type(type="true_false") //not working for ''1'' and ''0'' in NUMERIC(1) field @Type(type= "org.hibernate.type.NumericBooleanType") @NotNull(message="NOT_NULL") @Column(name = "IS_DELEGATION", nullable = false) private Boolean isDelegation;

Oracle DDL

alter table agent add (is_delegation number(1) default 0 not null);

Como se indica en el docu de Hibernate


Simplemente número (1)

Si lo desea, use SchemaExport para generar una secuencia de comandos en su base de datos de destino. Algo como

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>);