私は別のリソースで残りのウェブサービスをセットアップしました。それらのrest - jsonレスポンスには未知のフィールドがあります
一つは/ APIを介してアクセスすることができ、顧客/顧客
ある顧客クラスID、住所、名前、電子メールフィールドを持っていますが、何らかの理由でJSONレスポンスは次のようになります。
{
"type": "customer",
"address": {
"city": "Kottes-Purk",
"country": "Pakistan",
"street": "Julius-Raab-Straße 008"
},
"email": "[email protected]",
"name": "Prof. Dr. David Mikitenko"
}
jsonレスポンスに「type」フィールドがある理由がわかりません。誰かがなぜそこにいるのか説明できますか? CustomerResourceクラスで
@XmlRootElement
@Entity
@Table(name = "customers")
public class Customer extends Model {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name = "name")
private String name;
@Column(name = "email")
private String email;
@ManyToOne(fetch = FetchType.LAZY, cascade = {CascadeType.ALL})
@JoinColumn(name = "address_id")
private Address address;
@OneToMany(fetch = FetchType.LAZY, mappedBy = "customer")
private List<Booking> bookings;
public Customer() {}
public Customer(String email, Address address, String name) {
this.email = email;
this.address = address;
this.name = name;
}
public int setId() {
return id;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
@XmlTransient
public List<Booking> getBookings() {
return bookings;
}
public void setBookings(List<Booking> bookings) {
this.bookings = bookings;
}
public static List<Customer> all() {
return (List<Customer>) Database.all(Customer.class);
}
public static Customer find(int id) {
return (Customer) Database.find(Customer.class, id);
}
public static boolean exists(int id) {
return Database.exists(Customer.class, id);
}
public static List<Customer> where(String column, String value) {
return (List<Customer>) Database.where(Customer.class, column, value);
}
}
:
顧客のクラスは次のようになります
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<Customer> getCustomers(){
return agencyManager.getCustomers();
}
私はここで何をしないのですか? ': "顧客"、 "タイプ"' に追加される場合がありますので、あなたのIDセッターの
public abstract class Model implements Serializable {
public void save() {
EntityManager entityManager = HibernateUtil.getEntityManagerFactory().createEntityManager();
entityManager.getTransaction().begin();
entityManager.persist(this);
entityManager.getTransaction().commit();
entityManager.close();
}
public void delete() {
EntityManager entityManager = HibernateUtil.getEntityManagerFactory().createEntityManager();
entityManager.getTransaction().begin();
entityManager.remove(entityManager.contains(this) ? this : entityManager.merge(this));
entityManager.getTransaction().commit();
entityManager.close();
}
}
'Model'クラスに型がありますか? – iNan
@iNan no。モデルクラスには2つのパブリックメソッドしかありません – Lamevire
'Customer'の1つのインスタンスをログに記録し、IDが設定されているかどうかを確認できます。 – iNan