0

私のデータベースには、エンティティ テーブルがあります (エンティティと呼びましょう)。各エンティティは多数のエンティティ タイプを持つことができ、エンティティ タイプのセットは静的です。したがって、エンティティ ID とエンティティ タイプの名前の行を含む接続テーブルがあります。私のコードでは、EntityType は列挙型であり、Entity は Hibernate にマップされたクラスです。
エンティティ コードでは、マッピングは次のようになります。

@CollectionOfElements
@JoinTable(
        name = "ENTITY-ENTITY-TYPE",
        joinColumns = @JoinColumn(name = "ENTITY-ID")
)
@Column(name="ENTITY-TYPE")
public Set<EntityType> getEntityTypes() {
    return entityTypes;
}

ああ、私は注釈を使用していると言いましたか?
ここで、特定のエンティティ タイプのすべてのエンティティ オブジェクトに対して基準を使用して HQL クエリまたは検索を作成したいと考えています。

Hibernate フォーラムのこのページでは、これは不可能であると書かれていますが、このページは 18 か月前のものです。この機能が Hibernate の最新リリースの 1 つに実装されているか、または次のリリースで計画されているかどうか、誰か教えてもらえますか?

4

2 に答える 2

1

HQL:

select entity from Entity entity where :type = some elements(entity.types)

次のようにも書けると思います。

select entity from Entity entity where :type in(entity.types)
于 2008-09-10T04:14:44.810 に答える
0

あなたの関係は双方向ですか、つまり、プロパティEntityTypeがありEntityますか?もしそうなら、あなたはおそらく次のようなことをすることができますentity.Name from EntityType where name = ?

于 2008-09-08T18:47:05.870 に答える