Hibernate中多表查询必须要建立表与表之间的关联关系吗? 有2长表,student,subject,其中student中有一个subjectid,要与subject中的id建立关联关系,用Mysql前端建立关联关系是报错!请问怎么用sql语句建立关联关系?还有就是:是不是只要用到Hibernate多表查询,就必须建立关联关系啊?请指教,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不需要,hibernate 可以建立自己的逻辑关联,不依赖于数据库中用了什么关联,不过一般是统一的 你使用Hibernate的HQL查询,也可以普通的JDBC的SQL语句来查询其实Hibernate就是对JDBC的封装所以说,你可以按普通的sql关联查询 hibernate跟多表之间的关联扯不上吧就是自己写sql啊 你们这么写他一定看不懂.看得出来他是个新人. 假如: 你的表如下 (学生表) (科目表) 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? 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`) ) hibernate 一直是我最怕动的东西,不怎么会写hql语句~~ 不用建立关联关系,直接用hql语句关联就可以了! 今天试过了,不一定非要在表中建立关联关系,如果想多表查询的话,就要在form里面和hbm里面配置好关系,这样就可以了!hql语句也不用很复杂,就查询一个form就可以了,要在这个form里面写上相关的对象的名字,然后在页面获得就可以了!多谢各位的指教! 其实hibernate只使用单表映射应付简单的业务逻辑就能工作的很好,但是违背了其ORM设计的初衷。不过表一旦关联就增加了其设计的复杂度,没几个项目的真正测试运行是不行的。 求助各位Swing 高手,一个监听器问题 设计论坛求指导 无法取到list的值 关于hibernate一对多查询,怎么写呀!!! EJB远程方法调用问题 google search api 怎么找不到JNDI?? struts的一个简单问题,请前辈指点(在线等) 在JCreator中出现的问题 各位都来看————jdom解析中的难题,请英雄解决,非常感谢!!!!! 又一个Hibernate调试错误,怎么解决? hibernate: table is not mapped. 急,在线等!
其实Hibernate就是对JDBC的封装
所以说,你可以按普通的sql关联查询
就是自己写sql啊
你的表如下
(学生表) (科目表)
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?
`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`)
)