我能够存储、检索和查询具有枚举类型的实体(使用 JPA/Hibernate)。枚举字段使用@Enumerated(EnumType.STRING) 进行注释。
有可能做类似的事情"SELECT a FROM MyEntity a WHERE a.myEnum LIKE :param"
吗?
这个想法是让它匹配枚举值字符串(在 DB 中)与“SYSTEM_%”或“BUSINESS_%”等模式匹配的任何实体。
感谢您的帮助。
- - 更新:
当我试图用这个查询时:
`@Query("SELECT e FROM MyEntity e WHERE e.myEnum LIKE :value")`
使用值(表示匹配任何内容......):
%%
我得到这个例外:
Caused by: java.lang.IllegalArgumentException: Parameter value [%%] did not match expected type [mypackage.MyEntity$MyEnum]
at org.hibernate.ejb.AbstractQueryImpl.validateParameterBinding(AbstractQueryImpl.java:370)
at org.hibernate.ejb.AbstractQueryImpl.registerParameterBinding(AbstractQueryImpl.java:343)
at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:374)
at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:71)