对于JPA里使用复合主键,需要使用复合主键的一部分列来查询结果时,
(例如主键由 AID,BID两个部分来组成,需要使用AID来查询出对应的结果时)
在其他文章看到使用
repository.findByIDAID()
这种形式的方法不行时,
可以试试这种形式的
public interface 类名Repository extends JpaRepository<类名, 类名PK> {
List<类名> find 类名 By 类名PK _ 一个主键 Containing(String aid);
}
//空格是为了解释,实际上没有空格
//类名 指使用了复合主键的Entity类的类名称
//类名PK 是复合主键的类,创建方法其他博文可以找出,easy
这里假设要查询的类的复合主键由AID和BID组成
这样可以返回所有包含对应AID(即部分主键)的结果,这里即所有满足 aid 的结果
例如下面的
这里Location是一个类,使用了复合主键LocationPK来作为数据库的主键
LocationPK如下,其log_id和log_time作为复合主键,因为项目中查找一个运输中的货物log既需要它的id也需要它的time
//
(另外就是学习过程中对于JPA和Mysql的驼峰标识和下划线搞的迷了,所以这里推荐两个都不使用,虽然这样有点违背开发规则......)