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 的调用,那么我很幸运,我该怎么做?我不希望它被实例化,所以它总是为空(我也不想要 @Name 和 @In 注释)。

沃尔特

4

3 回答 3

1

目前,我将所有方法都包装在我的服务中。我会自动找到他们正在寻找的查询并注入参数(命名或索引)。这不像我想要的那样干净,但还有改进的余地。

我编写了一个接口和一个实现,除了 return(null); 主体中没有代码。

沃尔特

于 2010-05-28T12:36:18.757 回答
0

首先,界面不应该是接缝组件。您将如何实例化该接缝组件(接口)?

第二。你不能那样使用@Query

第三,你到底在问什么?我不明白你的问题。

于 2010-04-28T20:23:25.763 回答
0

我真的不知道 Seam 是什么,也没有看到一个很好的简单段落描述,所以我可能在谈论一些完全不相关的东西。

我已经玩过一个想法,比如只使用一些注释来运行 SQL 过程。该实现来自动态代理

于 2010-05-26T09:08:40.220 回答