java - Hibernate:使用特定字段获取结果
问题描述
我一直在关注很多关于如何通过引用表中的特定列来获取结果列表的教程。
我有这张桌子。
我想用 plan_code "TEST123" 获取结果列表
这是我的代码:
计划存储库.java
public interface PlanCoverageRepository extends CrudRepository<PlanCoverage, Long> {
List<PlanCoverage> findAllByPlan_code(String plan_code);
}
计划覆盖服务.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;
}
}
请帮我。我已经被这些困住了几天,而且似乎没有任何教程对我有用。太感谢了!!
解决方案
您已经搞乱了 Spring Boot 用于编写查询方法的约定。实体中字段的大小写应遵循较低的驼峰式方案,如下所示:
@Column(name="plan_code")
private String planCode;
然后查询方法PlanCoverageRepository
应该是:
List<PlanCoverage> findAllByPlanCode(String planCode);
推荐阅读
- php - 使用具有许多功能的 PHP 上传多张图片
- php - 如何在 Laravel 中检查双向唯一记录?
- python - 链接 Rlm_python.so 失败
- android - AAPT2 错误:检查日志以获取详细信息——从 git 结帐时
- angular - 开发保持工具栏和侧导航栏不变的应用程序
- android - 如何解决 com.jakewharton.retrofit2.adapter.rxjava2.HttpException: HTTP 422 Unprocessable Entity in FormUrlEncoded
- javascript - TypeError:在exports.delay 处调用对象无效,使用JSZip generateAsync 方法promise
- java - Kafka Streams:处理器有时会在应用程序重新启动时处理相同的消息
- c# - 模态对话框只需单击一个按钮即可加载,而不管类似按钮的数量如何 - 如何修复它?
- angularjs - 从函数返回数据并将其分配给 AngularJS 中的变量