私はSpring Boot + JPAを使用してREST Webサービスを設計しました。イベント、住所、EventMemberという2つのエンティティクラスがあります。それらは以下のように定義されます。JPAの多対1関連をフェッチする際の問題
@Entity
@Table(name="event")
public class Event {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name="name")
private String name;
@Column(name="description")
private String description;
@JsonFormat(pattern="yyyy-MM-dd")
private Timestamp event_date;
private boolean is_deleted;
@ManyToOne(fetch = FetchType.EAGER, optional = false,cascade=CascadeType.ALL)
@JoinColumn(name="address")
@JsonBackReference
@JsonInclude
private Address address;
@OneToMany(mappedBy="event")
private Set<EventMember> eventMember;
住所:
@Entity
@Table(name="address")
public class Address {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String short_code;
private String address1;
private String address2;
private String landmark;
private String zipcode;
private boolean is_deleted;
@OneToMany(mappedBy="address",cascade = CascadeType.ALL)
private Set<Event> event;
私はEventMemberエンティティに対応するメンバーを取得していますJSON応答でイベントID(主キー)を使用してイベントをフェッチしていますが、アドレスレコードは取得されません。
誰でも私に、イベントメンバーをフェッチしながらアドレスエンティティを取得する方法を教えてください。
コードID
public Address getAddressById(Long id) {
return em.find(Address.class, id);
}
からアドレス側をOMMITが期待されています... JPAを介したデータの取得... JSONによるシリアル化検索で問題がどこにあるのかを定義しますか?またはシリアル化で? –