Java 以下场景的Hibernate查询

Java 以下场景的Hibernate查询,java,database,hibernate,Java,Database,Hibernate,我创建了一个类,如下所示 public class BeanA{ private String customerId; private String cutomerName; private Map<String, SubMarket> subMarkets = new HashMap<>(); public String getCustomerId() { return customerId; } public void set

我创建了一个类,如下所示

public class BeanA{
  private String customerId;
  private String cutomerName;
  private Map<String, SubMarket> subMarkets = new HashMap<>();

   public String getCustomerId() {
    return customerId;
   }

   public void setCustomerId(String customerId) {
    this.customerId = customerId;
   }

   public String getCutomerName() {
    return cutomerName;
   }

   public void setCutomerName(String cutomerName) {
    this.cutomerName = cutomerName;
   }

   public Map<String, String> getSubMarkets() {
    return subMarkets;
   }

   public void setSubMarkets(Map<String, String> subMarkets) {
    this.subMarkets = subMarkets;
   }
}
公共类BeanA{
私有字符串customerId;
私有字符串名称;
私有映射子市场=新HashMap();
公共字符串getCustomerId(){
返回客户ID;
}
public void setCustomerId(字符串customerId){
this.customerId=customerId;
}
公共字符串getCutomerName(){
返回客户名称;
}
public void setCutomerName(字符串cutomerName){
this.cutomerName=cutomerName;
}
公共地图getSubMarkets(){
返回子市场;
}
公共子市场(地图子市场){
这个。次级市场=次级市场;
}
}
我也做了hibernate映射

它完全起作用了

现在我想得到一个结果集,[Map]key=some value,value=some value


我希望hibernate查询能够得到这个结果集

SELECT a FROM BeanA a JOIN a.subMarkets s 
WHERE KEY(s) = :some AND VALUE(s) = : someOther

假设Hibernate版本是一个固定版本。

您可以像下面这样将数据作为映射加载:

Hibernate文档示例:

select 
    new map(
        max(bodyWeight) as max,
        min(bodyWeight) as min, count(*) as n 
    ) 
from Cat cat

我终于自己得到了正确的答案:

 from [tableName]C where 'test' in indices(C.[mapName]) and 'Success' in elements(C.[mapName])

我最终自己得到了正确的答案:从[tableName]C,其中索引中的“test”(C.[mapName])和元素中的“Success”(C.[mapName]),我的hibernate版本对此不受支持,我希望搜索而不是加载