问题没有意义。在休眠状态下,这两个表实际上应该是实体,在这种情况下它们之间会有关系。您是否尝试随机加入 2 个表并返回结果?如果是这样,您必须使用 sql 并使用 aResultTransformer
将结果转换为对象。
private ResultTransformer getResultsTransformer()
{
ResultTransformer transformer = new AliasToBeanResultTransformer(
MyResultBean.class) {
@Override
public Object transformTuple(Object[] values, String[] aliases)
{
MyResultBean row = new MyResultBean();
for (int i = 0; i < aliases.length; i++)
{
row.set(aliases[i], values[i]);
}
return (row);
}
};
return transformer;
}
如下调用它:
Query q = session.createSQLQuery(sql);
q.setResultTransformer(getResultsTransformer());
List<MyResultBean> list = q.list();
更新:如果表 A 与表 B 一对多,那么我发现使用别名最容易
Criteria criteria = getSession().createCriteria(TableA.class);
criteria.createAlias("tableB","b");
criteria.add(Restrictions.eqProperty("id", "b.id");
criteria.list();
我希望这有帮助。问候,