POJO의 묶음에 주석을 달았 기 때문에 JPA는 그것을 사용하여 최대 절전 모드에서 테이블을 생성 할 수있다. "Revision"이라는 하나의 매우 중앙 테이블을 제외하고 모든 테이블이 생성 된 것처럼 보입니다. Revision 클래스는 @Entity(name="RevisionT")
주석을 가지고 있으므로 RevisionT로 이름이 바뀌므로 MySQL (대상 데이터베이스)의 예약어와 충돌하지 않습니다.테이블이 Hibernate에 의해 생성되지 않았다
전체 데이터베이스를 삭제하고 다시 만들고 기본적으로 JPA 세션을 열고 닫습니다. 모든 테이블은 아무런 문제없이 재현 된 것 같습니다.
왜 생성 된 스키마에서 하나의 테이블이 누락 되었습니까? Hibernate가 생성하는 것과 어떤 에러를보기 위해 어떤 도구가 사용될 수 있는가?
감사합니다.
업데이트 : Derby DB로 만들려고했지만 성공했습니다. 그러나 필드 중 하나에 "index"라는 이름이 있습니다. 나는 @org.hibernate.annotations.IndexColumn
을 사용하여 예약어가 아닌 다른 이름을 지정합니다. 그러나 열은 생성 될 때 항상 "인덱스"라고합니다.
다음은 의심스러운 특수 효과 샘플입니다. 대신에 필드로 MasterTop.Cx3tHApe
를 생성
@ManyToOne
@JoinColumn(name="MasterTopID")
@IndexColumn(name="Cx3tHApe")
protected MasterTop masterTop;
, 그것은 MasterTop.Index
를 생성한다. 이름이 왜 무시됩니까?
엄청난 도움이되었습니다! "Index"라는 이름의 컬럼이 생성되었다. 더 자세한 조사에 따르면 스키마의 @OneToMany 부분에도 @IndexColumn (name = "Index")이 있고, Hibernate는 @ManyToOne에서 @IndexColumn을 무시했다. 최대 절전 모드에서 출력. 오 잘. 작동합니다! – User1
하하, 나는 그게 다행 기뻐요 :) –