sql >> データベース >  >> RDS >> Mysql

メソッドJPQLのクエリの検証に失敗しました

    そのクエリをネイティブクエリとして扱うようにSpringに指示しました。それ以外の場合は、JPA仕様に従って検証を試みます。

    試してみてください:

    @Query(value = "SELECT ...", nativeQuery = true)
    public List<Object[]> transactions();
    

    この場合、NEW演算子構文を使用できず、結果をObjectの配列として処理する必要があることに注意してください。 。

    または

    結果を直接POJOクラスにマップする場合は、(JPA 2.1以降を使用していると仮定して)次のようにする必要があります。

    1) マッピングを定義します:

    @SqlResultSetMapping(
        name="transactionsMapping",
        classes={
            @ConstructorResult(
                targetClass=ConsolidateResDB.class,
                columns={
                    @ColumnResult(name="transdate"),
                    @ColumnResult(name="orderreqid")
                    // further mappings ...
                }
            )
        }
    )
    

    2) ネイティブクエリを定義する

    @NamedNativeQuery(name="transactions"
        , query="SELECT DATE_FORMAT(ts, '%d-%m-%Y') AS transdate, IFNULL(COUNT(orderreqid),0) ... ")
    

    3) このメソッドをCrudRepositoryで定義します @Queryなし 注釈:

    public List<ConsolidateResDB> transactions();
    


    1. MYSQLのORDERBYENUMフィールド

    2. MySQLデータベースの一般的な問題を修正する方法は?

    3. エラーを回避するためにこのクエリを書き直すにはどうすればよいですか:FROM句で更新するターゲットテーブルを指定することはできません

    4. Terraformを使用したMySQL/MariaDBVaultデータベースシークレットエンジンのプロビジョニング