programing

Oracle 데이터베이스를 사용할 때 Hibernate는 기본적으로 어떤 부울 데이터 유형을 매핑합니까?

copysource 2023. 3. 26. 14:13
반응형

Oracle 데이터베이스를 사용할 때 Hibernate는 기본적으로 어떤 부울 데이터 유형을 매핑합니까?

기본적으로 다음과 같은 엔티티에 필드를 만들 경우:

@NotNull
boolean myBoolean;

하이버네이션으로 테이블이 자동으로 생성됩니다.이 맵은 어떤 Oracle 데이터 유형에 적용됩니까?

@Arthur가 말한 바와 같이Number(1)표준 sql 비트가 됩니다.0 == false그리고.1 == true다른 방법으로 매핑할 수 있습니다.char(1)이렇게 'T' 또는 'F'를 하다

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

또는 'Y' 또는 'N'에 매핑합니다.

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

심플 번호 (1)

필요에 따라 Schema Export를 사용하여 타겟 데이터베이스에 스크립트를 생성합니다.뭐랄까

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

이게 네게 정말 필요한 거야

Java POJO:

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

휴지 상태 문서에 기재된 바와 같이

언급URL : https://stackoverflow.com/questions/1710198/what-does-hibernate-map-a-boolean-datatype-to-when-using-an-oracle-database-by-d

반응형