Ich habe ein Problem mit der Einstellung meines Country-Objekts zu meinem Haustier-Objekt.Thymoleaf und JPA - Objekt speichern ist nicht möglich
@Getter
@Setter
@EqualsAndHashCode
@NoArgsConstructor
@Entity
public class Country {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
}
My Pet Klasse
@Data
@Entity
public class Pet {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@ManyToOne(fetch = FetchType.EAGER)
private Country country;
}
Ich habe versucht, dies auf diese Weise zu tun (Länder Liste aller Länder aus der Datenbank ist, habe ich dies als ein Attribut Modell):
<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>
Aber dies nicht speichern Landesobjekt zu meinem Haustier Objekt. Ich hatte dies auf diese Weise zu tun, speichere ich nur id zu Land Objekt:
<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>
Gibt es eine Möglichkeit mein Land Objekt aus der Liste zu Land in Pet-Objekt zu retten? Oder ein anderer Weg. Ist dieser Code mit country.id richtige Methode zum Speichern vorhandener Objekt von Datenbank zu Objekt in meiner Pet-Klasse?
Land ist immer noch null. In deinem Weg. Ich versuchte, Land in Controller nach dem Senden zu verwenden, und ich habe java.lang.NullPointerException: null – Kutti
Ich habe keine Hinweise, wovon Sie reden, aber es sollte getan werden, wie ich Ihnen gezeigt habe. 'th: field' ist hier obligatorisch. Sie überprüfen besser, wo erhalten Sie NPE – Antoniossss
Wenn ich dies auf Ihre Weise tun, gibt es in der Datenbank ist Nullfeld für Spalte country_id in Haustier-Tabelle. – Kutti