Hibernate가 LONG over CLOB를 사용하도록 전환된 이유는 무엇입니까?
Hibernate가 사용하기 시작한 것 같습니다.LONG
버전 3.5.5(3.2.7에서 업그레이드됨)의 데이터 유형이 아닌CLOB
의 목적으로type="text"
.
이로 인해 다음과 같은 문제가 발생하고 있습니다.LONG
Oracle의 데이터 유형은 오래된 데이터 유형입니다(http://www.orafaq.com/wiki/LONG) 참조). 테이블에는 다음과 같은 열이 둘 이상 있을 수 없습니다.LONG
데이터 형식으로.
이것이 왜 바뀌었는지 아는 사람?
나는 오라클을 설정하려고 노력했습니다.SetBigStringTryClob
속성을 true로 설정합니다(Hibernate > CLOB > Oracle :(). 하지만 데이터 유형 매핑에는 영향을 주지 않고 내 경우와 무관한 데이터 전송 내부에만 영향을 줍니다.
이에 대한 한 가지 가능한 해결책은 다음과 같습니다.org.hibernate.dialect.Oracle9iDialect
:
public class Oracle9iDialectFix extends Oracle9iDialect {
public Oracle9iDialectFix() {
super();
registerColumnType(Types.LONGVARCHAR, "clob");
registerColumnType(Types.LONGNVARCHAR, "clob");
}
}
하지만 이것이 마지막 수단입니다. 이 클래스를 무시하는 것은 내가 차라리 피하고 싶은 최대 절전 모드에 한 걸음 더 다가가는 것입니다.
누가 이것이 왜 일어났는지 설명할 수 있습니까?이것을 벌레로 키워야 합니까?
[업데이트]:제가 https://hibernate.atlassian.net/browse/HHH-5569, 을 만들었습니다. 어떻게 되는지 봅시다.
이 문제의 해결책은 다음과 같습니다.materialized_clob
적어도 그것은 HHH-5569에서 게일 배드너가 말하고 있는 것입니다.
이것은 저에게 전혀 도움이 되지 않지만(그리고 저는 그것에 대한 관련 의견을 남겼습니다), 여기 있는 다른 사람에게 도움이 될 수도 있습니다.어쨌든 버그는 거부되었고 제가 할 수 있는 것은 거의 없지만 오버라이드된 사투리를 사용합니다 :(
누가 이것이 왜 일어났는지 설명할 수 있습니까?이것을 벌레로 키워야 합니까?
HHH-3892 - SQL LONGVARCHAR 및 CLOB에서 Java String, SQL LONGVARB로의 매핑 지원 개선INARY 및 BLOB에서 Java 바이트 [](문서 업데이트는 HHH-4878에 의해 추적됨).
그리고 같은 문제에 따르면, 예전의 행동은 잘못된 것이었습니다.
(참고: 현재 org.hibernate.type.TextType이 "텍스트"를 java.sql에 잘못 매핑합니다.Types.CLOB. 이 문제는 이 문제로 해결되고 데이터베이스 방언으로 업데이트됩니다.)
당신은 항상 문제를 제기할 수 있지만, 간단히 말해서, 제가 이해하는 바는 당신이 사용해야 한다는 것입니다.type="clob"
속성을 에 매핑하려면CLOB
.
PS: 사용자 고유의 기능 제공Dialect
또한 Hibernate 구성(포크와 무관)으로 선언하는 것은 장기적으로 IMHO 솔루션이 아닙니다.
이유에 대한 당신의 질문에 대답할 수 없지만, Hibernate 6의 경우 다시 사용하는 것을 고려하고 있는 것 같습니다.
언급URL : https://stackoverflow.com/questions/3719905/why-has-hibernate-switched-to-use-long-over-clob
'code' 카테고리의 다른 글
IE 11 브라우저에 jQuery AJAX POST 요청용 Content-Length=0이 랜덤으로 있는 이유는 무엇입니까? (0) | 2023.08.26 |
---|---|
백그라운드 작업, 진행 상황 대화, 방향 변경 - 100% 작동하는 솔루션이 있습니까? (0) | 2023.08.26 |
잘못된 오류: 리소스를 로드하지 못했습니다. net:ERR_CACH_MISS (0) | 2023.08.26 |
인수가 있는 함수에서 Invoke-Command-ScriptBlock 사용 (0) | 2023.08.26 |
Ansible MariaDB 10.1.47 암호가 강제되지 않음 (0) | 2023.08.26 |