Java 带有元素/索引的HQL通配符

Java 带有元素/索引的HQL通配符,java,hibernate,hql,Java,Hibernate,Hql,我有一个hibernate映射实体,它包含一个HashMap 比如说,如果我想找到一个实例,其中map包含一个键/值对,比如name:John,我可以编写 索引(属性)中的“name”和元素(属性)中的“John” 如何修改此HQL以允许使用通配符?我想查找名称以“J”开头的任何实例,例如您可以使用通配符替换查询中的参数。例如,如果您使用的是Hibernate,那么您的查询应该类似于: getSession().createQuery('name' in indices(:index) A

我有一个hibernate映射实体,它包含一个HashMap

比如说,如果我想找到一个实例,其中map包含一个键/值对,比如name:John,我可以编写

索引(属性)中的“name”和元素(属性)中的“John”


如何修改此HQL以允许使用通配符?我想查找名称以“J”开头的任何实例,例如

您可以使用通配符替换查询中的参数。例如,如果您使用的是Hibernate,那么您的查询应该类似于:

   getSession().createQuery('name' in indices(:index) AND 'John' in elements(:value))
   .setString("index","'%" + index + "%'")
   .setString("value","'%" + value+ "%'");