Dropwizard (Jackson と Hibernate を使用) を使用したブック ライブラリ システムには、次のクラスがあります。
@Entity
@Table(name="author")
public class Author {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name="name")
private string name;
// some more properties
}
@Entity
@Table(name="book")
public class Book {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name="title")
private string title;
// some more properties
}
@POST
public void addBook(Book book) {
...
}
本を追加するには、本のタイトルと著者の ID を json オブジェクトとして送信する必要があります。
{"title": "Harry Potter", "author": "123"}
ただし、Jackson は指定された作成者 ID から作成者を取得できないようです。
Error 400 Can not instantiate value of type [simple type] from Integral number; no single-int-arg constructor/factory method (through reference chain)
次のような一時オブジェクトを作成せずに、リクエストの JSON から book オブジェクトへ、および authorId から著者へのマッピングを構成する方法はありますか
class TempBook { string title; long authorId; }