【发布时间】:2020-12-22 11:40:39
【问题描述】:
我试图获取一个包含两个表连接结果的列表,但总是出错。 我想要的是包含人员和工作名称的列表
-
错误
- 无法调用“org.hibernate.hql.internal.ast.tree.FromElement.setAllPropertyFetch(boolean)”,因为“fromElement”为空
-
我的桌子
-
人
- int id
- 文字名称
- int job_id(表 JOB(id) 的外键)
-
工作
- int id
- 文字名称
-
人
-
实体
@Entity @Table(name = "person") public class Person{ @Id @Column(name = "id") int id; @Column(name = "name") String name; @Column(name = "job_id") int jobId; public int getId() { return id; } public void setId(int id) { this.id = id; } public int getJobId() { return jobId; } public void setJobId(int jobd) { this.jobId= jobId; } public String getName() { return name; } public void setName(int name) { this.name= name; } @Entity @Table(name = "job") public class Job{ @Id @Column(name = "id") int id; @Column(name = "name") String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(int name) { this.name= name; }- 道
public class PersonDAO { @Autowired private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sf) { this.sessionFactory = sf; } public List<Person> getAllPerson() { Session session = this.sessionFactory.getCurrentSession(); List<PersonResponse> list = session.createQuery("from Person p left join p.jobId").list(); } } - PersonResponse - POJO with Person parameteres/variables without annotations and job name.
【问题讨论】:
-
什么是关系类型?多对多,多对多?单机?