結果が配列/リストの場合、応答をシリアル化することができません。 RestControllerからclients
を呼び出すと、実際のオブジェクトの代わりに[{},{},{}]
が返されますが、他のすべてのメソッドは正常に機能します。春休みコントローラ
package com.test.Domain.Client;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.util.UUID;
@Entity
@Table(name = "client")
public class Client {
@Column(name = "client_id")
@Id
private UUID clientId;
@Column(name = "name")
private String name;
private Client() {
}
private Client(UUID clientId, String name) {
this.clientId = clientId;
this.name = name;
}
public static Client create(String name)
{
return new Client(UUID.randomUUID(), name);
}
}
package com.test.Rest;
import com.test.Domain.Calendar.AppointmentRepository;
import com.test.Domain.Client.Client;
import com.test.Domain.Client.ClientRepository;
import com.test.Domain.Worker.WorkerRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
@org.springframework.web.bind.annotation.RestController
public class RestController {
@Autowired
private ClientRepository clientRepository;
@Autowired
private WorkerRepository workerRepository;
@Autowired
private AppointmentRepository appointmentRepository;
@RequestMapping(path = "/client", method = RequestMethod.POST)
public void registerClient(@RequestParam(name = "name") String name) {
this.clientRepository.save(Client.create(name));
}
@RequestMapping(path = "/clientCount", method = RequestMethod.GET)
public Long countClient() {
return this.clientRepository.count();
}
@RequestMapping(path = "/clients", method = RequestMethod.GET)
@ResponseBody
public List<Client> clients() {
List<Client> list = new ArrayList<Client>();
for (Client client : this.clientRepository.findAll()) {
list.add(client);
}
return list;
}
}
ClientクラスでSerializableを実装しようとしましたか? –