String query1 =
String.format(
"SELECT %s "
+ "FROM AppStoreProductViewsEntity aspve "
+ "INNER JOIN DateDimensionEntity de "
+ "ON aspve.date = de.date "
+ "where %s "
+ "GROUP BY %s ",
"aspve.productId, de.weekOfYear, sum(aspve.productListingViewers)",
"aspve.date >= :from_date and aspve.date <= :to_date and aspve.productId = :product_id",
"aspve.productId, de.weekOfYear");
这是一块本地的hql。对于我的用例,所有使用此方法的API调用都将具有相同的基本查询。选择语句和分组依据的部分(集合等)将发生变化。最后生成的最终结果将始终是相同的。因此,我想构建一个查询生成器,在该查询生成器中,我将只传递投影列并按列分组,查询将自动生成。可以使用CriteriaBuilder完成此操作。无论如何,是否有访问表字段的权限(例如de.weekOfYear,以便我可以从中间类传递这些字段),而不是将它们作为String传递?