在HQL中,可以使用`values()`函数来查询`java.util.Map`的值。 以下是一个示例查询,假设有一个`Person`实体类,其中有一个`properties`属性是一个`java.util.Map`类型的字段: ```java @Entity @Table(name = "person") public class Person { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ElementCollection @CollectionTable(name = "person_properties", joinColumns = @JoinColumn(name = "person_id")) @MapKeyColumn(name = "property_key") @Column(name = "property_value") private Map<String, String> properties; // getters and setters } ``` 现在,我们想要查询所有`Person`实体的`properties`字段中的所有值,可以使用以下HQL查询: ```java String hql = "SELECT value(p.properties) FROM Person p"; List<String> values = entityManager.createQuery(hql, String.class).getResultList(); ``` 在上面的查询中,`value(p.properties)`表示查询`p.properties`字段中的所有值。我们使用`SELECT`关键字来选择这些值,并将其转换为`String`类型。 最后,我们使用`getResultList()`方法来执行查询并获取结果列表。 请注意,上述示例中的`entityManager`是一个`javax.persistence.EntityManager`实例,用于执行HQL查询。您需要根据您的应用程序环境进行相应的调整。