私は次のアーキテクチャを持っています: 2つのエンティティクラス、1対多の関係。 1つの自動サービスとそれに対する多くのサービス。 今、私は1つの自動サービスのすべてのサービスを名前で取得したいと考えています。サーバーサイドでネストされたオブジェクトのリストを取得するにはどうしたらいいですか? 1対多の関係
私はそれを行うことはできますか?または、クライアントに完全なObjectを送信し、その後にリストを取得する必要がありますか?
私はすべてのゲッターとセッターで2つのエンティティを持っています。私はスペースを節約するためにそれらを投稿しません。
マイAutoService.class
@Entity
@Table(name = "AutoRate")
public class AutoService {
public AutoService() {
}
@Id
@GeneratedValue(generator = "increment")
@GenericGenerator(name = "increment", strategy = "increment")
private long id;
@Column(name = "serviceName", nullable = false)
private String serviceName;
@Column(name = "imageURL", nullable = false)
private String imageURL;
@Column(name = "mapCoordinate", nullable = false)
private String mapCoordinate;
@Column(name = "websiteURL", nullable = false)
private String websiteURL;
@Column(name = "phoneNumber", nullable = false)
private String phoneNumber;
@JsonManagedReference
@OneToMany(mappedBy = "autoService", fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private List<Service> services = new ArrayList<Service>();
}
Service.class
@Entity
@Table(name = "Service")
public class Service {
public Service() {
}
@Id
@GeneratedValue(generator = "increment")
@GenericGenerator(name = "increment", strategy = "increment")
@Column(name = "serviceId", unique = true, nullable = false)
private long serviceId;
@Column(name = "serviceName", nullable = false)
private String serviceName;
@Column(name = "category", nullable = false)
private String category;
@Column(name = "price", nullable = false)
private int price;
@JsonBackReference
@ManyToOne
@JoinColumn(name = "autoServiceId", nullable = false)
private AutoService autoService;
}
私は次のリポジトリのインターフェースがあります。
public interface AutoRateRepository extends JpaRepository<AutoService, Long> {
AutoService findByServiceName(String serviceName);
List<Service> findServicesByServiceName(String serviceName);
}
ServiceImpl
@Service
public class AutoRateServiceImpl implements AutoRateService {
@Override
public List<com.webserverconfig.user.entity.Service> getAllServicesByAutoServiceName(String name) {
return repository.findServicesByServiceName(name);
}
}
を
そして、私のコントローラからの方法:データベースから
@RequestMapping(value = "/getServices/{serviceName}", method = RequestMethod.GET)
@ResponseBody
public List<Service> getServices(@PathVariable("serviceName") String serviceName){
List<Service> services = dataBaseService.getAllServicesByAutoServiceName(serviceName);
return services;
}
現在のエラー、私はサービスのリストを取得しようとしています:
SEVERE: Servlet.service() for servlet [dispatcher] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [com.webserverconfig.user.entity.AutoService] to type [com.webserverconfig.user.entity.Service]] with root cause
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [com.webserverconfig.user.entity.AutoService] to type [com.webserverconfig.user.entity.Service]
将来、フレームワークが自動サービス名でサービスを見つけることができないという問題に直面しますか?もし私がサービスのためにすべてを動かしたら? – Andrew