私は春のブートとjpa/hibernateの新機能です。用語の正確な使用法を忘れないでください。JPAの双方向エンティティを春に開発する方法
私は、本と住所の2つのエンティティを持っています。ある本が「住所」に格納されている特定の都市に発行されている場合、「住所」は複数の書籍を発行することができます。本のため DBスキーマは次のとおりです。本のあるAddressId、addressCountry、addressCity エンティティ:ID、名前、著者、価格、アドレスの スキーマをあるAddressId
@Entity
@Table(name = "test_book")
public class Book implements Serializable {
private static final long serialVersionUID = 8025948150436422040L;
@Id
long id;
@Column(name = "name")
String name;
@Column(name = "author")
String author;
@Column(name = "price")
long price;
@ManyToOne
@JoinColumn(name = "addressid")
private Address address;
...//getter and setter
実体アドレス
@Entity
@Table(name = "test_address")
public class Address implements Serializable{
private static final long serialVersionUID = -3541059157210384355L;
@Id
@Column(name= "addressid")
private long addressId;
@Column(name="addresscountry")
private String addressCountry;
@Column(name="addresscity")
private String addressCity;
@OneToMany(mappedBy = "address")
private Collection<Book> books;
...//getter setter
用
しかし、私はRESTfulなサービスを呼び出すときに、私は無限ループを取得...
[{ "ID":11、 "名": "Javaのブック"、 "著者": "ジェームズゴスリング"、 "価格": 100、 "address":{"addressId":1、 "addressCountry": "China"、 "addressCity ";"上海 "、"書籍 ":[{" id ":11、"名前 ":" Java Book "、"著者 ":" Jame Gosling "、"価格 ":100、"住所 ":...
検索しました。そして、私の要求は: 私は本を検索するとき、私は情報を得ることができます:ID、名前、著者、価格、住所.. また、私は市が公開したすべての書籍を取得するためのアドレスを照会することができます。 ブックエンティティのアドレスに@JsonManagedReferenceと@JsonBackReferenceを追加すると、書籍を検索できますが、アドレス情報を取得することはできません。
問題の解決方法を教えてください。どうもありがとうございました。
のために>エンティティ 'JsonView'もしあなたドンの概念に見てください -
:あなたはJsonIgnore
を提供するために、そしてそう、あなたのコードは次のようになります必要、これは停止するにはその本を住所に戻す必要があります。それ以外の場合は、オブジェクトアノテーションを微調整して参照先のエンティティのIDまたはURIを返すことができます。 HATEOASを使用します。 –
申し訳ありませんが、私はそれを明確にしませんでした。私は住所付きの本を返したい。住所を質問するときは、そこから出版された住所とすべての書籍をリストアップする。 – Sai