0
CountryオブジェクトをPetオブジェクトに設定する際に問題があります。私はこの方法でこれを行うにしようとしましたThymeleafとJPA - オブジェクトの保存ができません
@Data
@Entity
public class Pet {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@ManyToOne(fetch = FetchType.EAGER)
private Country country;
}
@Getter
@Setter
@EqualsAndHashCode
@NoArgsConstructor
@Entity
public class Country {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
}
マイペットクラスは(国がデータベースからすべての国のリストですが、私はこれを属性としてモデルに追加):
<form th:object = "${pet}" th:action="@{/pet/}" method = "post">
<select class="form-control" th:field="*{country}" >
<option th:each="countryVal : ${countries}"
th:value="${countryVal}"
th:text="${countryVal.getName()}"
>val
</option>
</select>
</form>
しかし、これは国オブジェクトをペットオブジェクトに保存しません。 が、私はこの方法でこれをしなければならなかった、私は国のオブジェクトへのIDのみを保存します。
<form th:object = "${pet}" th:action="@{/pet/}" method = "post">
<select class="form-control" th:name="country.id" >
<option th:each="countryVal : ${countries}"
th:value="${countryVal.id}"
th:text="${countryVal.getName()}"
>val
</option>
</select>
</form>
はペットオブジェクト内のリストから国に私の国のオブジェクトを保存するためにいくつかの方法がありますか? または別の方法です。 このコードはcountry.idの既存のオブジェクトをPetクラスのオブジェクトにデータベースから保存する適切な方法ですか?
に適用されます。この
免責事項をお試しください。あなたのやり方で。 送信後にコントローラで国を使用しようとしましたが、java.lang.NullPointerExceptionが発生しました:null – Kutti
私はあなたが何を話しているかの手がかりは持っていませんが、私があなたに示したようにしてください。 'th:field'はここで必須です。 NPE – Antoniossss
あなたのやり方でこれを行うと、データベースにpetテーブルのcountry_id列のヌルフィールドがあります。 – Kutti