У меня есть объекты, в которых одно поле имеет отношение один ко многим.
Это выглядит так.
@Entity
@Table(name = "company")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Company implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Column(name = "name", nullable = false)
private String name;
@NotNull
@Column(name = "short_name", nullable = false)
private String shortName;
@NotNull
@Column(name = "customer_number", nullable = false)
private String customerNumber;
@OneToMany(mappedBy = “company”)
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
private Set<BusinessType> businessTypes = new HashSet<>();
… getters setters
}
@Entity
@Table(name = “business_type")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class BusinessType implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotNull
@Enumerated(EnumType.STRING)
@Column(name = "type", nullable = false)
private BType type;
@ManyToOne(optional = false)
@NotNull
@JsonIgnore
private Company company;
… getters setters
}
public enum BType {
TYPE1, TYPE2, TYPE3
}
Таблицы базы данных выглядят так:
компания (id, имя, короткое имя, номер клиента)
business_type (идентификатор, тип, company_id)
Когда я запрашиваю конкретный путь RESTЯ получаю следующую структуру JSON:
{
"id" : 1,
"name" : “Business name”,
"shortName" : "Business short name",
"customerNumber" : "1234",
“businessTypes" : null
}
Но я ожидаю следующее:
{
"id" : 1,
"name" : “Business name”,
"shortName" : "Business short name",
"customerNumber" : "1234",
"businessTypes" : [{
"id" : 1,
“type” : “TYPE1”
}]
}
Почему businessTypes
null
, когда значения находятся в базе данных?
Чего мне не хватает?