当然没有了,因为是关联表吗,
Teacher表中应该多了
private EXP exp;
查找经验就是
from Teacher where tid=**;
虽然实体Bean中没有tid这一列,但是可以像上面这样查询。

解决方案 »

  1.   

    Exception in thread "main" org.springframework.orm.hibernate3.HibernateQueryException: could not resolve property: tid of: com.linkchina.DAO.TableTeacher [from com.linkchina.DAO.TableTeacher as c where c.tid=2]; nested exception is org.hibernate.QueryException: could not resolve property: tid of: com.linkchina.DAO.TableTeacher [from com.linkchina.DAO.TableTeacher as c where c.tid=2]
    Caused by: org.hibernate.QueryException: could not resolve property: tid of: com.linkchina.DAO.TableTeacher [from com.linkchina.DAO.TableTeacher as c where c.tid=2]
    at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:44)
    at org.hibernate.persister.entity.AbstractPropertyMapping.toType(AbstractPropertyMapping.java:38)
    at org.hibernate.persister.entity.AbstractEntityPersister.toType(AbstractEntityPersister.java:1358)
    at org.hibernate.hql.ast.tree.FromElementType.getPropertyType(FromElementType.java:279)
    at org.hibernate.hql.ast.tree.FromElement.getPropertyType(FromElement.java:386)
    at org.hibernate.hql.ast.tree.DotNode.getDataType(DotNode.java:566)
    at org.hibernate.hql.ast.tree.DotNode.prepareLhs(DotNode.java:241)
    at org.hibernate.hql.ast.tree.DotNode.resolve(DotNode.java:188)
    at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:94)
    at org.hibernate.hql.ast.tree.FromReferenceNode.resolve(FromReferenceNode.java:90)
    at org.hibernate.hql.ast.HqlSqlWalker.resolve(HqlSqlWalker.java:728)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.expr(HqlSqlBaseWalker.java:1216)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.exprOrSubquery(HqlSqlBaseWalker.java:4041)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.comparisonExpr(HqlSqlBaseWalker.java:3525)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.logicalExpr(HqlSqlBaseWalker.java:1762)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.whereClause(HqlSqlBaseWalker.java:776)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:577)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:281)
    at org.hibernate.hql.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:229)
    at org.hibernate.hql.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:228)
    at org.hibernate.hql.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:160)
    at org.hibernate.hql.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:111)
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:77)
    at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:56)
    at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:72)
    at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:133)
    at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:112)
    at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1623)
    at org.springframework.orm.hibernate3.HibernateTemplate$29.doInHibernate(HibernateTemplate.java:842)
    at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:840)
    at org.springframework.orm.hibernate3.HibernateTemplate.find(HibernateTemplate.java:832)
    at com.linkchina.DAO.TableExperienceDAO.getExp(TableExperienceDAO.java:53)
    at com.linkchina.service.TeachersService.getExp(TeachersService.java:211)
    at test.main(test.java:23)
      

  2.   

    贴你的代码和实体Bean。
    错误说没有Tid这个属性,这和SQL语句没关系。
    把你关键代码贴出来
      

  3.   

           经验表的
            private Integer id;
    private TableTeacher tableTeacher;
    private String workTime;
    private String companyType;
    private String companyName;
    private String dept;
    private String positionType;
    private String positionName;
    private String positionDetail;
    private String liftReason;
    private Date addtime;
    .......
         教师表的
           ....
           private Set tableExperiences = new HashSet(0);
           ......      在EXPDAO里面我写了这样一个
          public List getExp()
    {

    return getHibernateTemplate().find("from TableTeacher as c  c.tid=2");
    }
      

  4.   

    你的条件语句少个where 加上再看看,行不。
      

  5.   

    你是说要查询tid这个老师对应的所有的工作经验记录是吗?  List experiences = getHibernateTemplate().find("from TeacherExperience te where te.teacher.id=" + tid);
    你首先把把Teancher类和teacher工作经验类(TeacherExperience )的双向关联关系建好,one-to-many和many-to-one,然后像上面那样查询就行了
      

  6.   

    楼上,人家entityBean是自动生成的好不好。
    哈哈
      

  7.   

    配个一对多关系不就好了么,TEACHER配个Set集合.查出老师表的个人记录时他的教学经验也全加载好了.