2

Spring 3 アプリでは、コントローラーは JpaCollectorManager を呼び出し、JpaCollectorInfoDao を呼び出して、ネイティブ クエリによって定義されたリストを取得します。jpqlに実装されていないpostgresql機能を使用する必要があるため、クエリはsqlとjpqlを使用する2つの別々のテーブルを呼び出します。コントローラーがリストをファイルしようとすると、次のエラー メッセージが表示されます。

例外 [EclipseLink-6007] (Eclipse Persistence Services - 2.1.2.v20101206-r8635): org.eclipse.persistence.exceptions.QueryException 例外の説明: [CollectorInfo] の記述子がありません。
クエリ: ReadAllQuery(referenceClass=CollectorInfo sql="select distinct ON ( col.collector_id,pst.process_source_type ) col.*,pst.process_source_timestamp,pst.process_source_type from perform_schema.collector col join perform_schema.process_set pst on pst.collector_id = col.コレクター ID col.collector_id、pst.process_source_type、pst.process_source_timestamp desc による順序 ")

コントローラー Java には次の呼び出しがあります。

List<CollectorInfo> ps = this.collectorInfoManager.getLatestCollectorInfo();

JpaCollectorInfoManager.java には次のものがあります。

public List<CollectorInfo> getLatestCollectorInfo()
{
  return collectorInfoDao.getLatestCollectorInfo();
}

JpaCollectorInfoDao.java:

  @Override
  @Transactional
  public List<CollectorInfo> getLatestCollectorInfo() {
    Query query = entityManager.createNativeQuery( ( "select     distinct ON ( col.collector_id," +
    "pst.process_source_type ) " + 
    "col.*," +
    "pst.process_source_timestamp," + 
    "pst.process_source_type " + 
    "from      perform_schema.collector col " +
    "join      perform_schema.process_set pst " +
     "on       pst.collector_id = col.collector_id " +
    "order by  col.collector_id, " +
    "pst.process_source_type," +
    "pst.process_source_timestamp desc " ),
     CollectorInfo.class );
    return ( (List<CollectorInfo>) query.getResultList() );
  }

CollectorInfo クラスに @Entity が定義されていません。@Entity を定義すると、テーブルを解決できないことがわかります (実際のテーブルがないため、これは正しいことです)。私はあらゆる種類の順列を試しましたが、この上糸を作ることができないようです.

4

1 に答える 1