【问题标题】:Mapping SQL results to Java models将 SQL 结果映射到 Java 模型
【发布时间】:2017-10-10 09:21:27
【问题描述】:

假设我有这些表:

表A

col_a |
-----
a1
....

表 B

col_b | col_c | amount
---------------------
a1    | b1    | 2.2
a1    | b2    | 4.5

表C

col_d
----
b1 
b2
....

所有这些表在 Java 中都有关联的模型。

现在我想要的是以下内容:

col_a | b2 |  ....
------------
a1    | 4.5 |(from tableB.amount)
.....

我现在的查询是这样的;

SELECT a.col_a,
  SUM(CASE WHEN c.col_d = 'b1' THEN b.amount end) AS 'Kcal',
  SUM(CASE WHEN c.col_d = 'b2' THEN b.amount end) AS 'Kjoule',
  .... etc
    FROM tableA a
    LEFT JOIN tableB b ON b.col_b = a.col_a
    LEFT JOIN tableC c ON b.col_c = c.col_d
      GROUP BY a.col_a;

结果如下:

col_a | Kcal | Kjoule
---------------------
a1    | amount | amount

这个 ResulSet 正是我需要的,但我无法将它映射到我的 Java 模型。如何使用这个 ResultSet 在 Java 中对其进行建模,还是应该使用不同的方法?

【问题讨论】:

标签: java sql sqlite model dao


【解决方案1】:

您可以使用您的字段创建另一个实体(模型),例如:

public class Result{
  private String col;
  private BigDecimal kcal;
  private BigDecimal kjoule;
  ...
  getters and setters
}

【讨论】:

  • 我也在想这个,这是首选的方法吗?
  • 我不知道这是否是首选方式,但它可能是一个解决方案。这也取决于您项目的最佳实践。
猜你喜欢
  • 2013-05-19
  • 1970-01-01
  • 1970-01-01
  • 2017-02-12
  • 1970-01-01
  • 2016-09-29
  • 2019-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多