我是spring的新手,所以我还不完全了解如何进行自定义查询。我尝试了下面的代码,但它给了我一些错误。
我有两张表:
计划表
计划覆盖范围
我想用'TEST123‘plan_code获取所有计划覆盖范围的描述。
这是我当前的代码:
Plan.java
@Entity
@Table(name="plan")
public class Plan {
/....
@OneToMany(targetEntity=PlanCoverage.class, mappedBy="plan",cascade=CascadeType.ALL, fetch = FetchType.LAZY)
private List<PlanCoverage> planCoverage;
public List<PlanCoverage> getPlanCoverage() {
return planCoverage;
}
public void setPlanCoverage(List<PlanCoverage> planCoverage) {
this.planCoverage = planCoverage;
}
private String coverage_description;
public String getCoverage_description() {
return coverage_description;
}
}
PlanCoverage.java
@Entity
@Table(name="plan_coverage")
public class PlanCoverage {
@ManyToOne()
@JoinColumn(name="plan_code", referencedColumnName = "plan_code",insertable=false, updatable=false)
private Plan plan;
public Plan getPlan() {
return plan;
}
public void setPlan(Plan plan) {
this.plan = plan;
}
}
PlanRepository.java
public interface PlanRepository extends CrudRepository<Plan, String> {
@Query(nativeQuery = true, value= "SELECT * FROM plan_coverage WHERE plan_code=:planCode")
public List<Plan> findPlanCoverage(@Param("planCode") String planCode);
}
PlanController.java
@RequestMapping(value="/PlanDescription/{plan_code}", method=RequestMethod.GET)
public ModelAndView planDescription(@PathVariable String plan_code) {
ModelAndView model = new ModelAndView();
Plan plan = planService.getPlanById(plan_code);
model.addObject("planForm",plan);
List<Plan> coverageList = planService.findByPlanCode(plan_code);
model.addObject("coverageList",coverageList);
model.setViewName("plan_description");
return model;
}
plan_description.jsp
<c:forEach items="${coverageList }" var="coverage">
<span>${coverage.coverage_description}</span><br>
</c:forEach>
我想要访问覆盖率描述,但它给了我这个错误。
任何帮助都将不胜感激。
发布于 2018-09-23 23:13:50
您的实体“Plan”没有名为“coverage_description”的属性(或者简单地说是“getter方法”)。您需要首先定义它。只有“planCoverage”作为计划实体上的一个有用属性,才能在jsp页面中使用。
https://stackoverflow.com/questions/52467403
复制相似问题