【问题标题】:JPA Sql NativeQuery with SqlResultSetMapping throwing java.sql.SQLException: Column 'formula3_0_' not foundJPA Sql NativeQuery with SqlResultSetMapping throwing java.sql.SQLException: Column 'formula3_0_' not found
【发布时间】:2018-03-27 21:17:13
【问题描述】:

以下是我的@SqlResultSetMapping 的快照,其中包括来自本机查询的两个实体和另外两个列。

@SqlResultSetMapping(
    name = "EventLogMarketingInfoMapping",
    entities = {
            @EntityResult(
                    entityClass = MarketingInfo.class,
                    fields = {
                            @FieldResult(name = "id", column = "id"),

                            @FieldResult(name = "remoteAddr", column = "remote_addr"),

                            @FieldResult(name = "user_email", column = "user_email"),

                    }
            ),
            @EntityResult(
                    entityClass = EventLog.class,
                    fields = {
                            @FieldResult(name = "log_id", column = "log_id"),

                            @FieldResult(name = "comment", column = "comment"),

                            @FieldResult(name = "client", column = "client_id"),
                            @FieldResult(name = "game", column = "game_id")
                    }
            )

    },
    columns = {
        @ColumnResult(
            name = "user_namex",
            type = String.class
        ),
        @ColumnResult(
            name = "ip",
            type = String.class
        ),
    })

SqlResultSetMapping 上面是用下面的原生查询调用的

   Query query = entityManager.createNativeQuery(sql, "EventLogMarketingInfoMapping");
   return query.getResultList();

MarketingInfo @Entity 也有一些 @Forumlas,在 @EntityResult 中没有提到。

而 query.getResultList() 正在抛出以下异常。

java.sql.SQLException: Column 'formula3_0_' not found.

谁能定义这里发生了什么?我还想补充一点,sql 本身执行得很好,里面没有语法错误或公式列。

提前致谢。

【问题讨论】:

  • 你有想过这个吗?
  • 我遇到了同样的错误。

标签: java spring hibernate jpa spring-boot


【解决方案1】:

请添加相应的被触发的 sql 语句,根据 @EntityResult 注释,选择语句应该检索实体的所有属性部分并应该被映射。部分列选择将创建上述异常。一种替代方法是使用@ConstructorResult,它允许对所有关联实体对象的父级进行部分列检索。

【讨论】:

    猜你喜欢
    • 2017-05-26
    • 2016-09-15
    • 2019-06-06
    • 2014-07-16
    • 1970-01-01
    • 2014-10-01
    • 2018-09-10
    • 2011-03-16
    • 1970-01-01
    相关资源
    最近更新 更多