如何在Spring boot+;休息
这是我的区域课程:如何在Spring boot+;休息,spring,rest,spring-boot,spring-data,spring-data-jpa,Spring,Rest,Spring Boot,Spring Data,Spring Data Jpa,这是我的区域课程: @Entity(name = "REGION") public class Region { private Long id; private String region; @OneToMany(targetEntity = Compagnie.class, mappedBy = "region", fetch = FetchType.LAZY, cascade = CascadeType.ALL) private Set<
@Entity(name = "REGION")
public class Region {
private Long id;
private String region;
@OneToMany(targetEntity = Compagnie.class, mappedBy = "region", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<Compagnie> compagnie;
这是我在控制器类中的编辑方法:
@RequestMapping(value = "/compagnie/{id}", method = RequestMethod.GET)
public ResponseEntity<?> getCompagnie(@PathVariable("id") long id) {
logger.info("Fetching Compagnie with id {}", id);
Compagnie compagnie = compagnieRepository.findOne(id);
if (compagnie == null) {
logger.error("Compagnie with id {} not found.", id);
return new ResponseEntity(new CustomErrorType("Unable to update. Compagnie with id " + id + " not found."),
HttpStatus.NOT_FOUND);
}
return new ResponseEntity<Compagnie>(compagnie, HttpStatus.OK);
}
@RequestMapping(value=“/compagnie/{id}”,method=RequestMethod.GET)
公共响应getCompagnie(@PathVariable(“id”)长id){
info(“获取id为{},id为的公司”);
Compagnie Compagnie=compagnieRepository.findOne(id);
if(compagnie==null){
logger.error(“找不到id为{}的公司。”,id);
返回新的ResponseEntity(新的CustomErrorType(“找不到id为“+id+”的公司,无法更新”),
HttpStatus。未找到);
}
返回新的响应状态(compagnie,HttpStatus.OK);
}
我用于测试的json是:
{
“公司”:“测试公司1”,
“区域”:{
“id”:1,
“区域”:“区域1”
}
}
公司发生了变化,但区域不会改变,我无法从@requestBody读取区域属性
我真的需要你的帮助。
谢谢。在这种情况下,持久性提供程序默认不会获取
区域
定义实体上的实体图详细信息:
@Entity(name = "COMPAGNIE")
@NamedEntityGraph(name = "Compagnie.region",
attributeNodes = @NamedAttributeNode("region"))
public class Compagnie {
然后在jpa存储库界面中重写findOne
方法的定义:
public interface CompagnieRepository extends JpaRepository<Compagnie, String> {
@EntityGraph("Compagnie.region")
Compagnie findOne(Long id);
}
public interface compaginerepository扩展了JpaRepository{
@EntityGraph(“公司区域”)
Compagnie findOne(长id);
}
现在将急切地获取依赖项,并且区域数据应该出现在响应体中 默认情况下,持久性提供程序不会获取区域
定义实体上的实体图详细信息:
@Entity(name = "COMPAGNIE")
@NamedEntityGraph(name = "Compagnie.region",
attributeNodes = @NamedAttributeNode("region"))
public class Compagnie {
然后在jpa存储库界面中重写findOne
方法的定义:
public interface CompagnieRepository extends JpaRepository<Compagnie, String> {
@EntityGraph("Compagnie.region")
Compagnie findOne(Long id);
}
public interface compaginerepository扩展了JpaRepository{
@EntityGraph(“公司区域”)
Compagnie findOne(长id);
}
现在将急切地获取依赖项,并且区域数据应该出现在响应体中 我认为你应该自动得到对象图,因为你有一个对象关系。请看:我认为您应该自动获取对象图,因为您有一个对象关系。请参阅: