jeecg : Minidao報錯“Template java/lang/Object_toString.sql not found”的解決方案

引起此問題的原因有兩種:

第一種是官方文檔中所述的“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));

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章