Java org.hibernate.QueryException:无法解析已定义列名的属性
这是我第一次使用SpringMVC+Hibernate,所以请原谅我问了一个noob问题 数据库表之间的关系如下所示: 我想实现的是搜索属于某个用户的用户任务。因此,在UserRepository的实现中,我写了以下内容:Java org.hibernate.QueryException:无法解析已定义列名的属性,java,mysql,hibernate,spring-mvc,Java,Mysql,Hibernate,Spring Mvc,这是我第一次使用SpringMVC+Hibernate,所以请原谅我问了一个noob问题 数据库表之间的关系如下所示: 我想实现的是搜索属于某个用户的用户任务。因此,在UserRepository的实现中,我写了以下内容: @Repository("userTaskRepo") public class UserTaskRepoImpl extends AbstractDao<Integer, UserTask> implements UserTaskRepository {
@Repository("userTaskRepo")
public class UserTaskRepoImpl extends AbstractDao<Integer, UserTask> implements UserTaskRepository {
public List<UserTask> getByUserId(int userId, int startTaskId, int size) {
List<UserTask> userTasks = getSession().createCriteria(UserTask.class)
.add(Restrictions.eq("user_id", userId))
.add(Restrictions.ge("task_id", startTaskId))
.setMaxResults(size)
.list();
return userTasks;
}
}
此外,我还定义了用户和任务类
但是,当我试图在UserTaskRepoImpl中调用函数时发生错误
例外情况
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.hibernate.QueryException: could not resolve property: user_id of: edu.inlab.models.UserTask
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:979)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:858)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
有人能找出为什么会这样吗?
提前谢谢 好吧,我自己想出来的。 这是因为我混淆了SQL列名(在
@column
中定义)和HQL列名。
代码
应改为
.add(Restrictions.eq("userId", userId))
.add(Restrictions.ge("userId", startTaskId))
好吧,我自己想出来的。 这是因为我混淆了SQL列名(在
@column
中定义)和HQL列名。
代码
应改为
.add(Restrictions.eq("userId", userId))
.add(Restrictions.ge("userId", startTaskId))
是不是@Table(name=“usertask”)
?还是应该是@Table(name=“user\u tasks”)
?您确定表列的名称为user\u id吗?是否为@table(name=“usertask”)
?还是应该是@Table(name=“user\u tasks”)
?是否确定表列的名称为user\u id?
.add(Restrictions.eq("userId", userId))
.add(Restrictions.ge("userId", startTaskId))