class group{
private set students
}
class student{
group g;
int age;
};假设我已经在数据取了一个group g1,
我想取得属于这个g1的所有学生并且age=20的所有学生session.createCriteria(student.class).add(Expression.eq("group", g1)).add(
Expression.eq("age", 20)).list();
这样写有错误吗?为什么我还是查不到我想要的数据?
不知道为什么,经测试Expression.eq("group", g1)这个表达式是出现问题了,但不知道问题出在哪。请教各位了
还有就是group实现了hasmcode和eaquals方法,

解决方案 »

  1.   

    你查一下文档,这个是eq()方法:
    public static SimpleExpression eq(String propertyName,Object value)Apply an "equal" constraint to the named property Parameters:
    propertyName - 
    value - 
    Returns:
    Criterion--------------------------------------------------------------------------------
    第一个应该是表示的是一个属性的名字吧?
    你弄了一个实体对象。
      

  2.   

    假设group的名称属性是name
    改成Expression.eq("g.name", "g1")....
      

  3.   

    更正一下,我是用的这个Expression.eq("g", g1);
    查询没有异常抛出,但是总不能查询出正确结果。
    再次请问