1
を使用してEnumSetの中でテストする方法:列挙値がある場合は、次のように私は財産を持っているJPQL
@Entity
class Project implements Serializable {
@Convert(converter = TypeFlattener.class)
@Column(name = "assignable_types")
private EnumSet<Type> assignableTypes;
TypeFlattener
のポイントは、私は基本的には変換し、単純なリストのための正規化を避けたいということですEnumSet
カンマ区切りの値をカンマで区切った単純な文字列との比較Enum.name()
ここで問題は、特定のタイプが割り当て可能なタイプのプロジェクトのみをフィルタすることができますか?
私の最善のアプローチは、そのようなものになるだろう:
@NamedQuery(
name="Project.findByType",
query="SELECT p FROM Project p WHERE :t IN p.assignableTypes"
)
私は:t
のために何を渡すのですか? Stringバージョンは次のとおりですか?これもできますか?
q.setParameter("id", "MAJOR");
これは甘くて短かった。ありがとう。 – YoYo