2

私は JSF 2 を使用してプロジェクトを行っていますが、映画の提案を行う特に複雑なクエリがあります。私はそれを名前付きクエリとして入れようとしましたが、コンパイラはエラーがあると言いました。正直、どこを見ればいいのかわかりません

SELECT M.*
FROM Account A,
     Movie M,
     Orders O,
     Rental R,
  (SELECT Acc.Id
   FROM Account Acc,
     (SELECT COUNT(*) AS c,
             Acc.Id
      FROM Account Acc,
        (SELECT M.*
         FROM Account A,
              Rental R,
              Orders O,
              Movie M
         WHERE A.Id=R.AccountId
           AND R.MovieId=M.Id
           AND R.OrderId=O.Id
           AND A.Id=:id) AS a
      INNER JOIN
        (SELECT M.*,
                A.Id AS AccountId
         FROM Account A,
              Rental R,
              Orders O,
              Movie M
         WHERE A.Id=R.AccountId
           AND R.MovieId=M.Id
           AND R.OrderId=O.Id
           AND A.Id<>:id) AS b USING (Id,Name,TYPE,Rating,DistrFee,NumCopies)
      WHERE Acc.Id = b.AccountId ) AS COUNT
   WHERE COUNT.c>0
     AND COUNT.Id = Acc.Id) AS SimilarAccount
WHERE A.Id=R.AccountId
  AND R.MovieId=M.Id
  AND R.OrderId=O.Id
  AND A.Id=:id
  AND M.Id NOT IN
    (SELECT M.Id
     FROM Account A,
          Rental R,
          Orders O,
          Movie M
     WHERE A.Id=R.AccountId
       AND R.MovieId=M.Id
       AND R.OrderId=O.Id
       AND A.Id=SimilarAccount.Id)

パフォーマンスの問題はさておき (教授は映画の提案を MySQL 経由で行うことを望んでいました)、繰り返し使用するためにこのクエリを保存する手順がわかりません。クエリをビューとして保存しますが、パラメーターがあります (ユーザーのパラメーター ID が必要です)。

このクエリをどのように保存することをお勧めしますか?

4

1 に答える 1

0

キーと値のペアを含む Java プロパティ ファイルを作成し、DAO クラスにプロパティ タイプのプライベート フィールドを作成し、ファイルから値を読み取る Spring 構成を使用してそれを挿入するか、ストアド プロシージャの使用を検討することをお勧めします。わかりますよね……

于 2013-04-16T19:20:37.963 に答える