这个是根据实体类映射的字段去查询数据 , 根据对应的参数去查询 传参都是毕传
当参数都匹配数据库的数据 才能查询成功
DAO层
public interface CardTypeDao extends JpaRepository<CardType,String>, JpaSpecificationExecutor<CardType> { // 根据主卡类型 子卡类型 区域代码 城市代码去判断 CardType findByCityCodeAndDistrictCodeAndCardKindAndChildCardKind(String cityCode, String districtCode,String cardKind,String childCardKind); }
实体类的字段 这里对应的 是根据条件查询的字段:
@Basic @Column(name = "city_code",columnDefinition = "varchar(4) comment ''") private String cityCode; /** */ @Basic @Column(name = "district_code",columnDefinition = "varchar(4) comment ''") private String districtCode;/** */ @Basic @Column(name = "card_kind", nullable = false,columnDefinition = "varchar(2) comment ''") private String cardKind; /** */ @Basic @Column(name = "child_card_kind", nullable = false,columnDefinition = "varchar(2) comment ''") private String childCardKind;
Service层:
// 根据四个实体类参数去查询 数据库的数据 CardType findByCityCodeAndDistrictCodeAndCardKindAndChildCardKind(String cityCode, String districtCode,String cardKind,String childCardKind);
ServiceImpl层:
// 根据四个实体类参数去查询 数据库的数据 @Override public CardType findByCityCodeAndDistrictCodeAndCardKindAndChildCardKind(String cityCode, String districtCode,String cardKind,String childCardKind) { return cardTypeDao.findByCityCodeAndDistrictCodeAndCardKindAndChildCardKind(cityCode,districtCode,cardKind,childCardKind); }
控制台调用接口 这个条件是必须的 !! 当四个参数都匹配数据库里面的数据 才能查询出结果:
CardType byCardType = cardTypeService.findByCityCodeAndDistrictCodeAndCardKindAndChildCardKind( cardType.getCityCode(), cardType.getDistrictCode(), cardType.getCardKind(),cardType.getChildCardKind() );