本人是菜鸟刚刚接触SSH我想知道为什么用hibernate生成的实体类和数据库里面的少了一列下面是SQL语句和生成的实体类,我想做连接查询可是少了中间列没法做。

解决方案 »

  1.   

    没有少。那些主外键自动给你生成了set集合和实体类对象,在映射文件中生成了双向一对多关系,可以用实体类点出来。如:TbTickets对象.tbStadia.name。可以获取到TbTickets中TbStadia中的name属性。
      

  2.   

    那比我我想根据TbTickets的数据把TbStadia的属性也查出来拿得怎么做呢?
      

  3.   


    就是TbTickets对象.tbStadia.name,程序会根据映射信息进行级联查询。
      

  4.   

    意思是我直接写?   那么hql语句怎么写呢?   直接就是from TbTickets?  这样子会查询出tbStadia的信息吗?
      

  5.   

    你建的怎么是Set?为什么不是List?hql语句中直接这么写:select t from TbTickets t where t.tbStadia.name = "张三"   就行了!
      

  6.   


    嗯,就是直接写就行了,会自动根据映射关系发送两条查询语句,第二条查询语句就是查询tbStadia的信息,前提是你lazy没有设置true,可以设置false。
      

  7.   


    这是我的配置文件和HQL的写法不知道对不对。
      

  8.   

    对。不过如果你用的是Hibernate3的话,可以在<set>标签上加上lazy="false"。可以结贴了吧?