私はクラスブックを持っています:
@Entity
@Table(name = "books")
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType
public class Book {
@Id
@XmlAttribute
private String isbn;
private String title;
private String authors;
private int year;
@OneToMany(mappedBy="reservedBook")
private List<Reservation> bookReservations;
//Getters, setters, addReservation, remove Reservation
......................
}
それから、私はクラスの予約をしています
@Entity
@Table(name = "reservations")
@XmlRootElement
public class Reservation {
private String username;
private String isbn;
@Temporal(TemporalType.DATE)
private Date date;
@ManyToOne
@JoinColumn(name = "isbn")
private Book reservedBook;
@ManyToOne
@JoinColumn(name = "username")
private User userWhoReserved;
//Getters and setters
...........
}
リソース クラスでは、次のような特定の本を取得しようとしています。
@GET
@Path("/{isbn}")
@Produces(MediaType.TEXT_XML)
public Book getBookByIsbn(@PathParam("isbn") String isbn) {
Book book = entityManager.find(Book.class, isbn);
if (book != null) {
return book;
}
}
現在は、フィールド List bookReservations をシリアル化しません。@XmlElement でリストのゲッターに注釈を付けたり、他の場所で他の注釈を使用したりするなど、インターネットで見つけた多くのアイデアを試しましたが (今は覚えていません)、何も機能しませんでした。
編集:これは応答がどのように見えるかです:
<book isbn="3333333333">
<title>Mere Christianity</title>
<authors>C. S. Lewis</authors>
<year>2000</year>
</book>
予約も表示したいです。
解決策は何ですか?ありがとう!ソリン