0

これはどういうわけか可能ですか?

@Name("geolocationService")
public interface GeolocationService
{
   @Query("SELECT g FROM Geolocation geolocation INNER JOIN geolocation.deployment deployment WHERE geolocation.ipStart <= INET_ATON(:ipAddress) AND deployment.active = TRUE")
   Geolocation findByIpAddress(@NamedParameter("ipAddress")final String ipAddress);
}


public GeolocationAction
{
  @In
  private GeolocationService geolocationService;

  @RequestParameter("ipAddress")
  private String ipAddress;

  @Out
  private Geolocation geolocation;

  public void find()
  {
    geolocation = geolocationService.findByIpAddress(ipAddress);
  }
}

インターフェイスを実装せずにこれを行うことは可能ですか?それを機能させるには何が必要ですか?維持を減らし、より多くのことをしたい。

geolocationServiceの呼び出しを傍受できる場合、私は金色ですが、どうすればよいですか?インスタンス化されたくないので、常にnullになります(@Nameアノテーションと@Inアノテーションも必要ありません)。

ウォルター

4

3 に答える 3

1

当面は、すべてのメソッドをサービスにラップします。私は彼らが探しているクエリを自動的に見つけて、パラメータ(名前付きまたはインデックス付き)を挿入します。これは私が望むほどきれいではありませんが、改善の余地があります。

return(null)を除いて、本体にコードを含まないインターフェースと実装を記述します。

ウォルター

于 2010-05-28T12:36:18.757 に答える
0

まず第一に、インターフェースはシームコンポーネントであるとは想定されていません。そのシームコンポーネント(インターフェイス)をどのようにインスタンス化しますか?

第二に。そのように使うことはできません@Query

第三に、あなたは実際に何を求めていますか?あなたの質問がわかりません。

于 2010-04-28T20:23:25.763 に答える
0

Seamが何であるかはよくわかりません。また、簡単な1段落の説明が見当たらないので、まったく関係のないことについて話している可能性があります。

いくつかのアノテーションだけを使用してSQLプロシージャを実行するようなアイデアを少し試しました。実装は動的プロキシから来ています。

于 2010-05-26T09:08:40.220 に答える