service.impl代码:
@Override
public Book update(Book book) throws Exception{
Book oldbook = bookRepository.findById(book.getId()).get();
if(oldbook == null){
return null;
}
for(Field f : book.getClass().getDeclaredFields()){
String get = "get" + f.getName().substring(0,1).toUpperCase() + f.getName().substring(1);
String set = "set" + f.getName().substring(0,1).toUpperCase() + f.getName().substring(1);
Method getter = book.getClass().getMethod(get,new Class[]{});
Method setter = book.getClass().getMethod(set,new Class[]{f.getType()});
Object value = getter.invoke(book);
if(value == null){
setter.invoke(book,getter.invoke(oldbook));
}
}
return bookRepository.save(book);
}