这是我的地区课程:
@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;
这是我的Compagnie课程:
@Entity(name = "COMPAGNIE")
public class Compagnie {
private Long id;
private String compagnie;
@ManyToOne
@JoinColumn(name = "REGION_ID")
private Region region;
这是我来自控制器类的编辑方法:
@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);
}
我用于测试的json是:
{ &#34; compagnie&#34;:&#34; test compagnie 1&#34;, &#34; region&#34;:{ &#34; id&#34;:1, &#34;地区&#34;:&#34;地区1&#34; } }
公司的改变,但区域不会,我无法从@requestBody读取区域属性。
我真的需要你的帮助。 谢谢。
答案 0 :(得分:0)
默认情况下,您的持久性提供程序不会在这种情况下获取Region
。
在实体上定义实体图表详细信息:
@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);
}
现在急切地获取依赖关系,并且区域数据应该存在于响应主体中。