【问题标题】:Hibernate query for following scenario以下场景的休眠查询
【发布时间】:2013-05-22 14:46:43
【问题描述】:

我创建了一个类如下...

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;
   }
}

我也做了休眠映射。

一切正常。

现在我想得到 [Map] key=some value and value= some value 的结果集...

我希望通过休眠查询来获得该结果集。

【问题讨论】:

  • 我自己终于得到了正确答案:来自 [tableName]C where 'test' in indices(C.[mapName]) and 'Success' in elements(C.[mapName])

标签: java database hibernate


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您可以像这样将数据加载为地图:

    休眠文档示例:

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

    http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html#queryhql-select

    【讨论】:

    • 我要搜索不加载
    【解决方案3】:

    JPQL查询如下

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

    假设 Hibernate 版本是带有 HHH-5396 固定的版本。

    【讨论】:

    • 不支持我的休眠版本
    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 2014-10-23
    • 1970-01-01
    • 2011-08-09
    相关资源
    最近更新 更多