相关疑难解决方法(0)

@NamedNativeQuery - 如何将其绑定到存储库方法?

我正在使用Spring+ Hibernate并且我有一个特殊情况,我需要获取(一个列表)非Entity对象作为查询的结果.

我决定使用@ConstructorResultin @SqlResultSetMapping并参考此映射@NamedNativeQuery,如此此处所述.

然而,在使用命名原生查询所有案例中,他们获得EntityManager通过实例@PersistenceContext并调用createNativeQuery就可以了,提供name@NamedNativeQuery作为参数传递给该呼叫,如在回答.

如何将存储库中声明的方法映射interface到特定的@NamedNativeQuery?我的尝试是使用EntityName.MethodNameInRepositoryMethodNameInRepository作为name@NamedNativeQuery,但没有运气.

这是我的简化代码:

@Entity(name = "AdDailyData")
@SqlResultSetMapping(
        name="RevenueByAppAndDayMapping",
        classes=@ConstructorResult(
                targetClass=RevenueByAppAndDay.class,
                columns={@ColumnResult(name="country_code"),
                        @ColumnResult(name="revenue", type=Double.class),
                        @ColumnResult(name="currency")}))
@NamedNativeQuery(
        name="AdDailyData.aggregateRevenue",
        query="SELECT country_code, sum(earnings) as revenue, currency "
                + "FROM ad_daily_data, pseudo_app, app "
                + "WHERE ad_daily_data.pseudo_app_id=pseudo_app.id AND pseudo_app.app_id=app.id AND app.id=:appId and ad_daily_data.day …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa spring-data-jpa

12
推荐指数
1
解决办法
8820
查看次数

标签 统计

hibernate ×1

java ×1

jpa ×1

spring ×1

spring-data-jpa ×1