Шаблон дизайна интерфейса / Java / Seam - PullRequest
0 голосов
/ 28 апреля 2010

Возможно ли это как-нибудь?

@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);
  }
}

Возможно ли это сделать без реализации интерфейса? Что требуется, чтобы сделать эту работу? Я хочу поддерживать меньше и делать больше.

Если я могу перехватывать вызовы службы геолокации, то я золотая, как бы я это сделала? Я не хочу, чтобы он когда-либо создавался, поэтому он всегда будет нулевым (я тоже не хочу аннотаций @Name и @In).

Walter

Ответы [ 3 ]

1 голос
/ 28 мая 2010

В настоящее время я обертываю все методы в моих службах. Я автоматически нахожу запрос, который они ищут, и вставляю параметры (именованные или индексированные). Это не так чисто, как хотелось бы, но есть возможности для улучшения.

Я пишу интерфейс, а также реализацию без кода в теле, кроме return (null);

Walter

0 голосов
/ 26 мая 2010

Я действительно не знаю, что такое Шов, и я не вижу красивого простого описания в один абзац, поэтому я могу говорить о чем-то совершенно неуместном.

Я немного поиграл с идеей, как для запуска процедур SQL, используя только несколько аннотаций. Реализация происходит от динамического прокси .

0 голосов
/ 29 апреля 2010

Прежде всего, интерфейс не должен быть компонентом шва. Как вы будете создавать этот шовный компонент (интерфейс)?

Во-вторых. Вы не можете использовать @Query таким образом.

В-третьих, что вы на самом деле спрашиваете? Я не понимаю ваш вопрос.

...