我有一个场景,我想把从JPA存储库中的本机查询中提取的数据映射到自定义对象。
我的存储库代码如下:
@Query(nativeQuery = true,name = "TopCouponOffer")
List<TopCouponOffer> findTodayTopOffer(@Param("date") String date, @Param("time") String time);
我的自定义类代码如下:
@NamedNativeQuery(
name = "TopCouponOffer",
query =
"SELECT c.id,c.code\n" +
" FROM COUPON c \n" +
"JOIN CLICK cl\n" +
"ON cl.coupon_id = c.id\n" +
"JOIN COUPONS_STATUS cs\n" +
"ON cs.id= c.coupons_status_id\n" +
"JOIN COUPONS_OFFER_TYPE ct\n" +
" ON ct.id= c.coupons_offer_types_id\n" +
"WHERE\n" +
" c.ongoing_offer = 1 AND\n" +
" c.coupons_status_id != 4 AND\n" +
"IF(:date < c.end_date,\n" +
" IF(:date < c.start_date,\n" +
" 0,\n" +
" IF(:date = c.start_date,\n" +
" IF(:time < c.start_time,\n" +
" 0,\n" +
" 1),\n" +
" 1)),\n" +
" IF(:date = c.end_date || :date = c.start_date, \n" +
" IF(:time > c.end_time || :time < c.start_time,\n" +
" 0,\n" +
" 1), 0)) = 1 ORDER BY cl.count DESC LIMIT 2",
resultSetMapping = "TopCouponOffer",
resultClass = TopCouponOffer.class
)
@SqlResultSetMapping(name="TopCouponOffer",
classes = {
@ConstructorResult(targetClass = TopCouponOffer.class,columns = {
@ColumnResult(name = "id"),
@ColumnResult(name = "code")
})
}
)
public class TopCouponOffer {
Integer id;
String code;
public TopCouponOffer(Integer id, String code){
this.id=id;
this.code=code;
}
}
但是我在运行应用程序时遇到了以下错误
原因:org。springframework。数据地图。PropertyReferenceException:找不到类型优惠券的属性FindTodayPoffer!
我应该移动名称查询和sql结果映射到我的实体类吗?问题是我不想污染我的实体类,有什么方法可以通过向我的实体类添加更多代码来实现这一点吗?
我认为存储库中的functionname应该重命名为findByDateAndTime。
我试图使用MapStruct在dto和实体对象之间映射convert,但是生成的映射器实现只返回空的映射对象。 BeermapperImpl 任何人都可以提供我的代码可能出错的地方?谢谢!
我需要使用本机查询对2-3个表执行联合操作,并需要将结果映射到自定义对象中。由于JPA不支持UNION子句,所以JPA不可能实现同样的事情。 我听说过SqlResultSetMap,它在这种情况下有用吗? 如何以及在哪里使用这个,任何链接或其他东西?没有在谷歌上获得太多信息。
问题内容: 我有两个C#类 和 在dbContext调用中使用它,以通过EF5映射数据库中的返回对象 我遇到的问题是,即使返回了地址数据,我似乎也无法获得映射的地址对象。searchResult映射的其他属性很好。 问题答案: SqlQuery不支持 您应该做的是:
我正在开发我的第一个FastAPI和Pydantic项目,在尝试从endpoint返回生成器时遇到了一个问题。问题在下面,任何投入都将不胜感激! 我有一个 API endpoint,我首先从数据库中获取数据记录,然后使用 map 函数格式化每条记录。但是,将映射结果返回到终结点时,键值映射出错。请注意,出于性能考虑(大数据量),我想将endpoint的返回类型保留为生成器。 我的伪代码: 这样,我
问题内容: 是否可以将本机SQL查询的结果映射到Grails域类实例的集合? 问题答案:
我希望在我的dao对象中有这样的方法 但我得到了错误 错误:不确定如何将游标转换为此方法的返回类型public abstract java。util。地图 是否可以将其更改为工作版本? 因此,返回的类型可能不同,但主要条件是 数据库中只能有一个查询 我希望避免额外的代码,比如只为这个方法创建额外的数据结构