有2长表,student,subject,其中student中有一个subjectid,要与subject中的id建立关联关系,用Mysql前端建立关联关系是报错!请问怎么用sql语句建立关联关系?还有就是:是不是只要用到Hibernate多表查询,就必须建立关联关系啊?请指教,谢谢!

解决方案 »

  1.   

    不需要,hibernate 可以建立自己的逻辑关联,不依赖于数据库中用了什么关联,不过一般是统一的
      

  2.   

    你使用Hibernate的HQL查询,也可以普通的JDBC的SQL语句来查询
    其实Hibernate就是对JDBC的封装
    所以说,你可以按普通的sql关联查询
      

  3.   

    hibernate跟多表之间的关联扯不上吧
    就是自己写sql啊
      

  4.   

    你们这么写他一定看不懂.看得出来他是个新人.   假如:
            你的表如下
                              (学生表)                            (科目表)
                      student                                   subject
                      stuId                                       subId
                      subId                                       subName
                      stuNameCREATE TABLE `student` (
      `stuId` int(11) NOT NULL auto_increment,
      `subId` int(11) default NULL,
      `stuName` int(11) NOT NULL,
      PRIMARY KEY  (`stuId`),
      KEY `student_fk` (`subId`),
      CONSTRAINT `student_fk` FOREIGN KEY (`subId`) REFERENCES `subject` (`subId`)

    CREATE TABLE `subject` (
      `subId` int(11) NOT NULL auto_increment,
      `subName` int(11) default NULL,
      PRIMARY KEY  (`subId`)
    ) 这样表就搞定了.第二个问题
               联接问题.很好的.当你生成pojo时候
      生成的    
             Student对象属性里面有Subject的对象这样的话你想得到他们的信息就好搞定了..
     如学生的科目名称  Student.Subject.subjectName ok?
      

  5.   

    CREATE TABLE `student` ( 
      `stuId` int(11) NOT NULL auto_increment, 
      `subId` int(11) default NULL, 
      `stuName` int(11) NOT NULL, 
      PRIMARY KEY  (`stuId`), 
      KEY `student_fk` (`subId`), 
      CONSTRAINT `student_fk` FOREIGN KEY (`subId`) REFERENCES `subject` (`subId`) 

    CREATE TABLE `subject` ( 
      `subId` int(11) NOT NULL auto_increment, 
      `subName` int(11) default NULL, 
      PRIMARY KEY  (`subId`) 

      

  6.   

    hibernate 一直是我最怕动的东西,不怎么会写hql语句~~
      

  7.   

    不用建立关联关系,直接用hql语句关联就可以了!
      

  8.   

    今天试过了,不一定非要在表中建立关联关系,如果想多表查询的话,就要在form里面和hbm里面配置好关系,这样就可以了!hql语句也不用很复杂,就查询一个form就可以了,要在这个form里面写上相关的对象的名字,然后在页面获得就可以了!多谢各位的指教!
      

  9.   

    其实hibernate只使用单表映射应付简单的业务逻辑就能工作的很好,但是违背了其ORM设计的初衷。不过表一旦关联就增加了其设计的复杂度,没几个项目的真正测试运行是不行的。