2017-06-18 16 views
0

selectタグに外部キーを持つフォームを保存しようとしていますが、常にnullです。 !i外部キーをSpring mvcフォームセレクトタグに保存できません

クラスユーザ:

@Entity 
public class User implements Serializable{ 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long UserCode; 
    private String Lastname; 
    private String Firstname; 
    private String Adress; 
    @ManyToOne 
    @JoinColumn(name="CityCode") 
    private City CityCode; 
    private String phone; 
    private String mail; 
    private int newsletter; 

コントローラ:

@RequestMapping(value = "/add", method = RequestMethod.POST) 
     public String add(@ModelAttribute("userModel") User user,BindingResult bindingResult, Model model) {  
      user.setCreator("admin"); 
      user.setDateCreation(new Date()); 
      user.setDateChange(new Date()); 

      model.addAttribute("user", new User()); 
      metier.AddUser(user); 

      return "redirect:/user"; 
     } 

コードのhtml:

<div class="form-group"> 
<label for="city" class="control-label col-lg-2">Ville</label> 
    <div class="col-lg-4"> 
    <f:select path="CityCode" class="control-label col-lg-12"> 
     <c:forEach items="${states}" var="state"> 
      <option value="${state.cityCode }">${state.name }</option>             
     </c:forEach> 
    </f:select> 
</div> 

私はテーブルのユーザー

答えて

0

に都市コードを保存カント私はあなたがCascadeTypeを逃すと思います:

ここ

@ManyToOne(cascade = CascadeType.ALL)

詳細:https://dzone.com/tutorials/java/hibernate/hibernate-example/hibernate-mapping-many-to-one-using-annotations-1.html

+0

私はこのエラーがあります:オブジェクト内のフィールドのエラー 'userModel' フィールド 'CityCode' に関する:拒否された値[1];タイプシティで都市コードに値1を保存することはできません!! –

+0

値= "$ {state.cityCode}"がCityオブジェクトであることは確かですか? – Padi

+0

値= "$ {state}"はCityオブジェクトですか? yesの場合、value = "$ {state}"を変更してください。ユーザーを保存する前にCityCodeフィールドに有効で持続的なオブジェクトCityが必要です。そして、私はあなたの注釈に混乱していると思うので... CityオブジェクトにはcityCode(およびcityName、countyなど)があり、c:forEachオプション値にはcityCodeを渡します(オブジェクト) – Padi

関連する問題