问题描述
MyBatis接口的定义如下:
@TypeProviderFor(MybatisMapper)
interface DBMapper extends MybatisMapper {
List<ReferenceItem> listReferences(String type)
int addReferenceItem(ReferenceItem newItem)
int saveReferenceItem(ReferenceItem item)
int badOrders(int id)
ReferenceItem getReferenceItem(int id,String type)
List getBadOrders(int carId)
List<ReportingMark> listReportingMarks()
int addReportingMark(ReportingMark mark)
List<ViewCar> listCarsForViewing()
int addRRCar(RRCar)
RRCar getRRCar(int id)
int updateCar(RRCar)
int addinspection(inspection inspection)
int addBadOrder(BadOrder badOrder)
}
有问题的控制器具有以下代码段:
if (name.equals("MaintenanceWindow")) {
List<ReferenceItem> areas = dbService.getReferenceList("CAR_AREA")
areas.each {
view.cararea.items.add(new ObsReference(id: it.id,typeVal: it.typeName))
}
view.cararea.getSelectionModel().select(0)
model.selectedCararea.bind(view.cararea.getSelectionModel().selectedindexproperty())
model.datePerformed.set(LocalDate.Now())
dbService.getBadOrders(model.carId)
model.currentTime.set(LocalTime.Now().format(DateTimeFormatter.ofPattern("kk:mm")))
List<BOviewmodel> badOrderedCars = dbService.getBadOrders(carId)
log.debug("the list of bad ordered cars is {}",badOrderedCars)
runInsideUI( {
view.badOrderedCars.getItems().remove(0,view.badOrderedCars.getItems().size())
log.debug("adding a bad ordered car {}",it)
badOrderedCars.each {view.badOrderedCars.items.add(it)}
})
}
第一个dbService引用(dbService.getReferenceList(“ CAR_AREA”))运行正常,第二个(dbService.getBadOrders(carId))响应为“) 引起原因:groovy.lang.MissingMethodException:方法的无签名:com.spw.rr.DBService.badOrderResults()适用于参数类型:(java.lang.Integer)值:[3]“ 对于我的一生,我看不到第一个定义和第二个定义之间的区别。有人有想法吗?
解决方法
我需要记住序列-在服务中定义方法,在接口和XML中定义服务调用的内容。我跳过了一步,没有记住它。
第一个代码段中的代码是接口定义。我没有从服务中发布代码(dbService参考),这是需要定义方法的地方。