RestaurantクラスとTagクラスのManyToMany関係に問題が発生しました。私が得た:Spring MVC ManySelectのManyToMany
public class Tag {
@Id
private int id;
private String name;
@ManyToMany
@JoinTable(name="restaurant_tag",
joinColumns={@JoinColumn(name="tag_id")},
inverseJoinColumns={@JoinColumn(name="restaurant_id")})
private List<Restaurant> restaurants;
と:私が得た私のJSPで
public class Restaurant {
@Id
@GeneratedValue
private int id;
(...)
@ManyToMany
@JoinTable(name="restaurant_tag",
joinColumns={@JoinColumn(name="restaurant_id")},
inverseJoinColumns={@JoinColumn(name="tag_id")})
private List<Tag> tags;
:私のコントローラで
<form:select multiple="true" path="tags">
<form:options items="${tagList }" itemValue="id" itemLabel="name" />
</form:select>
私が得た:
public ModelAndView myrestaurantadd(HttpServletRequest request,
HttpServletResponse response, Restaurant restaurant)
throws Exception {
restaurantDAO.saveRestaurant(restaurant);
}
私は保存ボタンをクリックすると、 、私はエラーを受け取りました:
フィールド 'tags'のオブジェクト 'command'のフィールドエラー:拒否された値[[Ljava.lang.String; @ 5babd8cb];コード[typeMismatch.command.tags、typeMismatch.tags、typeMismatch.java.util.List、typeMismatch];引数[org.springframework.context.support.DefaultMessageSourceResolvable:codes [コマンドタグ、タグ];引数[];デフォルトのメッセージ[タグ]];デフォルトのメッセージ[型[java.lang.String []]のプロパティ値を、プロパティ 'tags'の必須型[java.util.List]に変換できませんでした。ネストされた例外はjava.lang.IllegalArgumentExceptionです:プロパティ 'tags [0]'の必須タイプ[beans.Tag]にタイプ[java.lang.String]の値を変換できません:一致するエディタまたは変換ストラテジが見つかりません]]根本的な原因 org.springframework.validation.BindException:org.springframework.validation.BeanPropertyBindingResult:1つのエラー
をお試しください:公共のModelAndViewは(HttpServletRequestのリクエスト、 HttpServletResponseの応答、レストランレストラン) は例外{ restaurantDAO.saveRestaurant(レストラン)をスローmyrestaurantadd。 } – zax
@zax編集 –
参照http://stackoverflow.com/questions/6637324/save-many-to-many-in-spring-mvc – gouki