我在Oracle SQL Developer中创建了三个表,即
1.Test_Employee2
2.Test_Project2
3.Employee_Project2
。表Employee_Project2
是连接表,因为Test_Project2
和Employee_Project2
之间的关系是多对多
。
在hibernate中,我为Test_Project2
和Employee_Project2
表创建了两个hibernate类Test雇员
和TestProject
,
和表Employee_Project2
在TestProject
hibernate类中定义如下:
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "Employee_Project2", joinColumns = @JoinColumn(name = "proj_id"), inverseJoinColumns = @JoinColumn(name = "emp_id"))
private Set<TestEmployee> employeesList;
我用一些记录填充了表Test_Project2
和Employee_Project2
,连接表Employee_Project2
自动填充了一些记录。现在我目前面临的问题是,我想使用hiberante在连接表Employee_Project2
上使用一个简单的选择语句,如下所示:
String hql = "FROM Employee_Project2";
Query query = session.createQuery(hql);
List results = query.list();
for (Object row : results) {
//what to do here
}
我怎么能做到这一点,尽管联接表'Employee_Project2'不是一个Hibernate类。?
更新时间:
我想检索Hibernate表“TestProject”中的所有记录,所以我写了以下代码
String hql = "FROM TestProject";
Query query = session.createQuery(hql);
List results = query.list();
System.out.println("results.get(0)" + results.get(0).toString());
现在的问题是,在运行时,我收到如下内容
results.get(0)msc.hibernate.persistence.TestProject@12ec9534
如何获取每行中包含的值??
您要做的是创建类型化查询。使用适当的映射,您也可以获取相关对象-无需查询连接表,因为ORM
将为您执行此操作:
Query query = session.createQuery(hql);
List<TestProject> results = query.list();
for (TestProject row : results) {
//what to do here
// do whatever you want
}
使用propper关系映射,您可以得到如下关系:
for (TestProject row : results) {
Set<TestEmployee> employees=row.getEmployeesList();
// do more work.
}
至于“如何”这个话题太宽泛了,无法用一个答案来回答。但你应该能够从这里开始-http://hibernate.org/orm/documentation/5.1/
嗨,我正在尝试使用左外部连接执行hql查询,它是thwhing异常作为org.hibernate.hql.ast.querysyntaxException:意外标记:在第1行附近,可以告诉我这个查询中有什么问题吗 从CreditCardDetails cred左外连接CustomerHistory custHist on cred.creditCardDetailSid=custHist.Cred
subcompany.hbm.xml 子单位表 branch.java 指定表 我需要帮助编写条件查询使用提供的SQL。
我在Mysql中有一个查询, 我已经完成了简单的查询转换为hibernate查询。我将所有pojo类绑定到表。请指导我如何将多个连接查询转换为一个hibernate查询。
问题内容: 我有以下hibernate映射: 而表如下所示: 我的hibernate查询看起来像: 但是我总是 有人可以帮我如何使它正常工作吗? 问题答案: 您必须使用子查询而不是联接。大致如下: 另外,根据类型的不同,应该以其他格式显示它。
我有一个mysql内部联接查询,它联接数据库中的3个表,并生成所需的结果集。现在我想使用session.createQuery()编写相应的hibernate查询。我已经在我的项目中为这3个表创建了模型类。没有与3个表关联的映射。mysql查询如下所示。 现在请告诉我如何使用hibernate session.createQuery()编写这个查询?请帮助我。下面是3个表的模型类 帐户. java
问题内容: 我有3个bean:组织,角色,用户 角色-组织关系-@ManyToOne 角色-用户关系-@ManyToMany 组织机构: 角色: 用户名: 因此,我需要获取指定用户的所有组织(首先,我需要选择所有用户角色,然后选择具有此角色的所有组织) 我有一个实现此逻辑的sql语句(例如,我选择id = 1的用户): 如何使用hibernate命名查询机制实现此目的?谢谢! 问题答案: @Nam