У меня есть класс с несколькими членами, а также связанные с ними сеттеров и добытчиками:Как сделать POST через RestTemplate класс со встроенными членами?
public class Tester implements Serializable {
@Column(name="ID", nullable=false, unique=true)
@Id
@GeneratedValue(generator="LOCATION_FACILITYTYPE_ID_GENERATOR")
@org.hibernate.annotations.GenericGenerator(name="LOCATION_FACILITYTYPE_ID_GENERATOR", strategy="native")
private int ID;
@Column(name="Value", nullable=false, unique=true, length=4)
private String value;
@Column(name="Name", nullable=false, unique=true, length=8)
private String name;
@ManyToOne(targetEntity=location.FacilityType.class, fetch=FetchType.LAZY)
@org.hibernate.annotations.Cascade({org.hibernate.annotations.CascadeType.LOCK})
@JoinColumns({ @JoinColumn(name="FacilityTypeID", referencedColumnName="ID", nullable=false) })
private location.FacilityType facility;
В JUnit, я пытаюсь проверить создание Tester элемент:
Tester trythis = new Tester();
trythis.setName("Herewe");
trythis.setValue("wow1");
Tester jnode = restTemplate.postForObject(TestBase.URL + "tester/", trythis, Tester.class);
Это работает, как ожидалось , Тем не менее, если я использую такой код, чтобы включить встроенный элемент:
FacilityType ft = new FacilityType();
ft.setValue("AL");
ft.setName("2adamlec");
Tester trythis = new Tester();
trythis.setName("Herewe");
trythis.setValue("wow1");
trythis.setFacility(ft);
Tester jnode = restTemplate.postForObject(TestBase.URL + "tester/", trythis, Tester.class);
где внедренный элемент со значением = AL пока не появится в базе данных, я все еще получаю новую строку, созданную в таблице Tester .. , но столбцы значений и имени в тесте заполняются значениями (AL и 2adamlec), определенными для FacilityType.
Обратите внимание, что мы используем инфраструктуру JPARepository для FacilityType и Tester. Таким образом, функции CRUD обрабатываются «под обложками», и я не могу отлаживать обработку POST. Интересно, связано ли это с тем фактом, что данные GET для Tester возвращают только примитивные поля в ответе JSON, поскольку для FacilityType не существует проекции.
Я делаю что-то неправильно, чтобы поля типа FacilityType сохранялись вместо требуемых полей тестера в таблице Tester?