1

HSQLDB で Hibernate アノテーションとエンティティ マネージャー (JPA) を使用しています。だから私は列挙型フィールドを持つエンティティを持っています:

@Enumerated(EnumType.STRING)
@Column(name = "access_level")
public AccessLevel getAccessLevel() {
    return accessLevel;
}

AccessLevel は列挙型です。これを保持し、デタッチしてからクエリを実行すると、すべてが正常になります。ただし、EntityManagerFactory を閉じると、すべてがディスクにフラッシュされてから再起動すると、このフィールドは常に null になります。

HSQLDB Manager を使用してデータベースにクエリを実行すると、すべてがそこにあり、このテーブルの列には enum 要素の名前が含まれています。ただし、クエリを実行すると、エンティティには、このフィールドが常に null であることを除いてすべてが含まれます。

ユーザータイプのビジネスを避け、シンプルにしようとしています。私を混乱させるのは、これが起こるのは EntityManagerFactory を閉じた後であるということです。オブジェクトを永続化してデタッチし、他の EntityManagers とトランザクションを使用してマージ、クエリ、検索などを行うことができ、列挙型は正しく処理されます。

どんな手がかりも役に立ちます。

4

0 に答える 0