1

1 つの参照がファイルされた roo エンティティがあります。

@RooJavaBean
@RooToString
@RooJpaActiveRecord
public class ActivatedConfiguration {

  @NotNull
  @OneToOne
  @JoinColumn(unique = true, nullable = false)
  private Configuration configuration;

  ...
}

Springコントローラーでは、そのエンティティーをパラメーターとして使用して数学に注釈を付けました:

@RequestMapping(value = "/")
public String startActivation(ActivatedConfiguration activatedConfiguration){
...
}

HTML GETリクエストを準備したとき:

http://localhost:8080/app?configuration=1&[...]

春は自動的にそのフィールドを注入しました。

問題は、その魔法はどこから来るのか? junit テストでデータベースのフェッチをモックするにはどうすればよいですか?

4

1 に答える 1

0

これは、Spring MVCに登録されているConverterによって処理されます-Webフォルダーを調べると、アプリケーションのすべての異なるコンバーターを含むApplicationConversionServiceFactoryBean_Roo_ConversionService.ajクラスが表示されます-文字列を受け取り、それをに変換するコンバーターがあるはずです。あなたのConfigurationクラスは、本質的にIDをStringとして受け取り、それをlongに変換してから、ConfigurationそのIDを持つエンティティのリポジトリを検索します。これが、SpringMVCがパラメーターをバインドする方法です。

于 2012-09-12T12:10:55.593 に答える