java - Hibernate persistence: Column not found -


i getting column not found error during, , can't figure out wrong, ask help.

i need generate list of task references user , project. using h2 database.

here tables:

create table task.app_user ( id int not null generated identity, username varchar(25) not null, firstname varchar(25) not null, lastname varchar(25) not null, password varchar(32) not null, primary key (id) );  create table task.project ( id int generated identity, name varchar(50) not null, companyname varchar(50) not null, primary key (id) );  create table task.project_task ( id int generated identity, projectid int not null, userid int not null, description varchar(500) not null, estimateddurationhours int not null, primary key (id), foreign key (projectid) references task.project(id), foreign key (userid) references task.app_user(id), ); 

here dao class:

@repository public class taskdaohibernate implements taskdao { public taskdaohibernate() { }  @autowired private sessionfactory sessionfactory;  private session getcurrentsession() {     return sessionfactory.getcurrentsession(); }  @suppresswarnings("unchecked") @override public list<user> fetchallusers() {     return getcurrentsession().createquery("from user").list(); }  @override public user fetchuserbyid(integer userid) {     return (user) getcurrentsession().get(user.class, userid); }  @suppresswarnings("unchecked") @override public list<project> fetchallprojects() {     return getcurrentsession().createquery("from project").list(); }  @override public project fetchprojectbyid(integer projectid) {     return (project) getcurrentsession().get(project.class, projectid); }  @override public void savetask(task task) {     getcurrentsession().save(task);         }  @suppresswarnings("unchecked") @override public list<task> fetchalltasks() {     return getcurrentsession().createquery("from task").list(); }  @override public task fetchtaskbyid(integer taskid) {     return (task) getcurrentsession().get(task.class, taskid); }  @override public void edittask(task task) {     getcurrentsession().update(task);         }  public sessionfactory getsessionfactory() {     return sessionfactory; }  public void setsessionfactory(sessionfactory sessionfactory) {     this.sessionfactory = sessionfactory; }   } 

here user class, i've mapped project class on same principle:

@entity @table(name="task.project") public class project implements serializable {  /**  *   */ private static final long serialversionuid = 1l;  @id @column(name = "id") @generatedvalue private integer id;  @column(name = "name") private string nazivprojekta;  @column(name = "companyname") private string nazivtvrtke;  @manytoone @joincolumn(name="projectid") private task task;  //setters, getters , overrided equal , hashcode methods 

and last class task class:

@entity @table(name="task.project_task") public class task implements serializable {  /**  *   */ private static final long serialversionuid = -4633753821563474175l;  @onetomany(mappedby="id", fetch=fetchtype.eager) private list<user> user;  @onetomany(mappedby="id", fetch=fetchtype.eager) private list<project> project;  @column(name = "description ") private string opiszadatka;  @column(name = "estimateddurationhours") private integer trajanje;  @id @column(name = "id") @generatedvalue private integer id;  public task(){  } 

and here beggining of stack trace:

org.h2.jdbc.jdbcsqlexception: column "user0_.userid" not found; sql statement: select user0_.id id1_2_0_, user0_.id id1_0_0_, user0_.id id1_0_1_, user0_.firstname firstnam2_0_1_, user0_.username username3_0_1_, user0_.lastname lastname4_0_1_, user0_.userid userid5_0_1_, task1_.id id1_2_2_, task1_.description  descript2_2_2_, task1_.estimateddurationhours estimate3_2_2_ task.app_user user0_ left outer join task.project_task task1_ on user0_.userid=task1_.id user0_.id=? [42122-176] @ org.h2.message.dbexception.getjdbcsqlexception(dbexception.java:344) @ org.h2.message.dbexception.get(dbexception.java:178) @ org.h2.message.dbexception.get(dbexception.java:154) 

i think i've posted relevant info, if else needed, gladly add it

your task entity has list<user>, expects user have @manytoone relationship.

however, table task.project_task has fk task.app_user table. meaning, task has @manytoone relationship user, not other way around.


Comments