programing

JPA - DDL에서 문자열 열을 varchar(max)로 설정하는 방법

css3 2023. 6. 29. 20:21

JPA - DDL에서 문자열 열을 varchar(max)로 설정하는 방법

JPA를 사용하는 경우 속성에 대한 DDL 생성:

@Column
final String someString;

될 것이다someString varchar(255) null

@Column(length = 1337)
final String someString;

항복할 것입니다someString varchar(1337) null.

하지만 어떻게 하면 그것을 생산할 수 있습니까?someString varchar(max) null?

사용이 가능합니까?length-속성 또는 사용해야 합니까?columnDefinition-어쨌든?

몇 달이 지나고, 새로운 지식이 습득되었기 때문에, 저는 제 질문에 대답할 것입니다.

@Lob
@Column
final String someString;

가장 정확한 결과를 산출합니다.의 버전과 함께hbm2ddl저는 사용하고 있습니다. 이것은 유형으로 변환될 것입니다.text와 함께SqlServerDialect는 최신 버전의 SQL Server에서 대체되었으므로, 바라건대, 최신 버전의hbm2ddl항복할 것입니다varchar(max)대신에text이러한 유형의 매핑(현재 저는 꽤 오래된 버전의 Hibernate에 갇혀 있습니다...)

부터lengthJPA 사양 및 javadocs에서 다음과 같이 정의됩니다.int타이프와max가 아닙니다.int그렇다면 당신이 그 곳에 위탁되었다고 가정하는 것이 안전합니다.columnDefinition데이터스토어 종속 경로입니다.그러나varchar(max)어쨌든 데이터스토어에 종속되어 있습니다.

안녕하세요 아래 코드는 동일한 문제를 수정했습니다.

@Column(columnDefinition="TEXT")

@Lob

final String someString;

사용하다@Size(max = 1337)생성됩니다.varchar(1337)

이 코드를 사용할 수 있습니다.

모델 코드:

@NotNull  
@Length(max = 7)  
@Column(name = "Gender")  
private String gender;

SQL 출력은 다음과 같습니다.

> gender varchar(7)

언급URL : https://stackoverflow.com/questions/16414215/jpa-how-to-set-string-column-to-varcharmax-in-ddl