JPJAで複数のPOJOに注釈を付けたので、JPAはそれらを使用してHibernateでテーブルを作成できます。それは、 "Revision"と呼ばれる1つの非常に中央のテーブルを除いて、すべてのテーブルが作成されているようです。リビジョンクラスには@Entity(name="RevisionT")
注釈が付いていますので、RevisionTにリネームされるので、MySQLの予約語(ターゲットデータベース)と競合しません。テーブルがHibernateで作成されていない
データベース全体を削除して再作成し、基本的にJPAセッションを開いて閉じます。すべてのテーブルは問題なく再現されているようです。
作成されたスキーマに1つのテーブルが存在しないのはなぜですか? Hibernateがどのようなエラーを生成しているかを見るために、どのような計測器を使うことができますか?
ありがとうございました。
更新:Derby DBとして作成しようとしましたが、成功しました。ただし、フィールドの1つに「索引」という名前があります。私は@org.hibernate.annotations.IndexColumn
を使用して、予約語以外の名前を指定します。ただし、列は作成時に常に「索引」と呼ばれます。
ここに疑わしい注釈のサンプルがあります。代わりにフィールドとしてMasterTop.Cx3tHApe
を作成する
@ManyToOne
@JoinColumn(name="MasterTopID")
@IndexColumn(name="Cx3tHApe")
protected MasterTop masterTop;
、それはMasterTop.Index
を作成します。なぜ名前は無視されますか?
非常に助けになりました!さらに、調査では、スキーマの@OneToMany側にも@IndexColumn(name = "Index")があったことが示されていますが、Hibernateは@ManyToOneの@IndexColumnを無視しています。 Hibernateからの出力。ああ、それは動作します。 – User1
母、私は助けてうれしいです:) –