Я выставляю свою полиморфную модель в репозиторий spring rest, и моя проблема в том, что я пытаюсь получить всю рекламу из БД с использованием созданного репо,
поле "тип", созданное @JsonTypeInfo, опущено. Когда я получаю свои объявления, используя тот же метод репо "findAllAdvertisements (Pageable pageable)" в пользовательском контроллере отдыха, все в порядке
@Entity
@Table(name = "advertisements")
public class Advertisement {}
@Entity
@Table(name = "properties")
@Inheritance(strategy = InheritanceType.JOINED)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Flat.class, name = "flat"),
@JsonSubTypes.Type(value = Ground.class, name = "ground"),
@JsonSubTypes.Type(value = House.class, name = "house")
})
public class Property {}
@Entity
public class Flat extends Property {}
@Entity
public class Ground extends Property {}
@Entity
public class House extends Property {}
JSON результат с использованием репо
{
"title" : "title 1",
"price" : 100000.00,
"description" : "description 1",
"createdDate" : "09-11-2018",
"property" : {
"localization" : "localization 1",
"area" : 100.0,
"floorsNumber" : 1,
"roomsNumber" : 1
},
"_links" : {
"self" : {
"href" : "http://localhost:8080/advertisements/1"
},
"advertisement" : {
"href" : "http://localhost:8080/advertisements/1"
}
}
}
JSON результат с использованием пользовательского контроллера
{
"id" : 1,
"title" : "title 1",
"price" : 100000.00,
"description" : "description 1",
"createdDate" : "09-11-2018",
"property" : {
"type" : "flat",
"id" : 2,
"localization" : "localization 1",
"area" : 100.0,
"floorsNumber" : 1,
"roomsNumber" : 1
}
}