У меня есть 2 лица. Но мой тип ответа не соответствует сущностям.
@Entity
@Table(name="customer")
public class Customer {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
private String firstname;
private String lastname;
private boolean available;
@OneToMany(cascade= {CascadeType.DETACH,CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH})
@JoinColumn(name="customer_id")
private List<Product> products;
public Customer() {
// TODO Auto-generated constructor stub
}
public Customer(String firstname, String lastname, boolean available) {
super();
this.firstname = firstname;
this.lastname = lastname;
this.available = available;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public boolean isAvailable() {
return available;
}
public void setAvailable(boolean available) {
this.available = available;
}
public List<Product> getProducts() {
return products;
}
public void addProduct(Product product) {
if(products==null)
products=new LinkedList<Product>();
products.add(product);
}
@Override
public String toString() {
return "Customer [id=" + id + ", firstname=" + firstname + ", lastname=" + lastname
+ ", available=" + available + "]";
}
}
[GET] localhost: 8080 / myapp / Customers / {id}
Здесь я хочу взять все данные клиентов (идентификатор, имя, фамилия, доступные, продукты)
{
"id" : 1,
"name" : "John",
"lastname" : "Doe",
"available" : false
"products" : {...}
}
[GET] localhost: 8080 / myapp / клиентов
Но здесь я хочу взять с клиентами некоторые данные (просто идентификатор, имя, фамилия)
[{
"id" : 1,
"name" : "John",
"lastname" : "Doe",
},
{
"id" : 2,
"name" : "Alex",
"lastname" : "Adams",
}]
Должен ли я создавать новые классы для каждого ответа? или редактировать данные JSON в контроллере?