我一直在关注如何通过引用表中的特定列获取结果列表的教程。
我有这张桌子。
我想获得一个计划代码为“ TEST123”的结果列表
这是我的代码:
PlanRepository.java
public interface PlanCoverageRepository extends CrudRepository<PlanCoverage, Long> {
List<PlanCoverage> findAllByPlan_code(String plan_code);
}
PlanCoverageService.java
public interface PlanCoverageService {
public List<PlanCoverage> getAllPlanCoverageByPlanCode(String plan_code);
}
PlanCoverageServiceImpl.java
@Service
@Transactional
public class PlanCoverageServiceImpl implements PlanCoverageService {
@Override
public List<PlanCoverage> getAllPlanCoverageByPlanCode(String plan_code) {
return (List<PlanCoverage>) planCoverageRepository.findAllByPlan_code(plan_code);
}
}
PlanCoverageController.java
@Controller
@RequestMapping(value="/admin")
public class PlanCoverageController {
@Autowired
PlanCoverageService planCoverageService;
@RequestMapping(value="/Test/{plan_code}", method=RequestMethod.GET)
public ModelAndView test(@PathVariable String plan_code) {
ModelAndView model = new ModelAndView();
PlanCoverage planCoverage = (PlanCoverage) planCoverageService.getAllPlanCoverageByPlanCode(plan_code);
model.addObject("planCoverageForm",planCoverage);
model.setViewName("plan_coverage_form");
return model;
}
}
PlanCoverage.java
@Entity
@Table(name="plan_coverage")
public class PlanCoverage {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private long coverage_id;
@Column(name="plan_code")
private String plan_code;
@Column(name="coverage_description")
private String coverage_description;
/..getters and setters
@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;
}
}
请帮助我。我被这些问题困扰了几天,似乎没有一个教程对我有用。非常感谢!!
答案 0 :(得分:0)
您搞砸了spring boot用于组成查询方法的约定。实体中字段的大小写应遵循小写驼峰格式,如下所示:
@Column(name="plan_code")
private String planCode;
,然后PlanCoverageRepository
中的查询方法应为:
List<PlanCoverage> findAllByPlanCode(String planCode);