Dies ist das erste Mal, dass ich SpringMVC + Hibernate benutze, also vergib mir, wenn ich eine noob Frage gestellt habe.org.hibernate.QueryException: konnte die Eigenschaft mit dem bereits definierten Spaltennamen nicht auflösen
Die Beziehung von Datenbanktabellen wie folgt aussieht:
Und was ich will implementieren ist für user_tasks suchen, die zu einem gewissen Benutzer gehört. So bei der Umsetzung von UserRepository Ich schrieb dies:
@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;
}
}
und die damit verbundene Usertask Klasse sind wie folgt definiert:
@Entity
@Table(name = "usertask")
public class UserTask {
//public enum TaskState {CLAIMED, FINISHED, EXPIRED};
public static int TYPE_CLAIMED = 0;
public static int TYPE_FINISHED = 1;
public static int TYPE_EXPIRED = 2;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Integer id;
@Column(name = "user_id", nullable = false)
private Integer userId;
@Column(name = "task_id", nullable = false)
private Integer taskId;
@Column(name = "curr_usermicrotask_id")
private Integer currUserMicrotaskId;
@Column(name = "state", nullable = false)
private Integer state;
//...some getters and setters
}
Auch ich habe Klassen von Benutzer und Aufgabe definiert .
tritt jedoch Fehler, als ich versuchte, die Funktion in der UserTaskRepoImpl Ausnahme zu nennen
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)
Könnte jemand herausfinden, warum das passiert ist? Vielen Dank im Voraus!
geändert werden ist es '@Table (name = "Usertask")'? Oder sollte es '@Table (Name =" user_tasks ")' sein? Sind Sie sicher, dass die Tabellenspalte den Namen user_id hat? – jmcg