jeecg : Minidao報錯“Template java/lang/Object_toString.sql not found”的解決方案
阿新 • • 發佈:2018-12-05
引起此問題的原因有兩種:
第一種是官方文件中所述的“Minidao版本過低,需要升級Minidao的版本”。此時修改一下pom檔案中的Minidao的version即可。
<dependency>
<groupId>org.jeecgframework</groupId>
<artifactId>minidao-pe</artifactId>
<version>1.6.7</version>
</dependency>
第二種是我們的程式碼中有可能觸發了@Minidao做註解的介面的toString方法。比如我們建立了如下介面:
@MiniDao
public interface UserDao {
@Arguments("id")
@ResultType(String.class)
@Sql("select username from tb_user where id=:id")
public String getUserNameById(String id);
}
然後我們在注入該Dao的Service類中直接列印該Dao來判斷是否注入成功:
@Controller @RequestMapping("/userController") public class UserController extends BaseController { private static final Logger logger = LoggerFactory.getLogger(UserController.class); @Autowired private UserDao userDao; @RequestMapping(params = "list") public ModelAndView list(HttpServletRequest request) { logger.info("userDao = " + userDao); return new ModelAndView("com/jeecg/demo/userlist"); } }
此時會觸發UserDao的toString方法從而導致丟擲異常。因此我們可以通過修改語句來避免觸發toString方法即可。例如:
logger.info("userDao = " + (accountbookTypeDao == null));