Student 主键方 一方drop table fe_student;
create table fe_student(
sid int not null auto_increment,
sno varchar (20),
studentname varchar(50),
password varchar(50),
primary key (sid)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into fe_student values(1,'078325023','邱文彬','gnzLDuqKcGxMNKFokfhOew==');
insert into fe_student values(2,'078325032','晓晓','gnzLDuqKcGxMNKFokfhOew==');-----gnzLDuqKcGxMNKFokfhOew== 即 12345
Course 外键 多方--考试科目表
drop table fe_course;
CREATE TABLE `fe_course` (
`cno` int(11) NOT NULL auto_increment,
`sid` int(11) default NULL,
`coursename` varchar(255) default NULL,
`score` int(11) default NULL,
PRIMARY KEY (`cno`),
KEY `FK5FCDCB9B878B7AB9` (`sid`),
CONSTRAINT `FK5FCDCB9B878B7AB9` FOREIGN KEY (`sid`) REFERENCES `fe_student` (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into fe_course values(null,1,'JAVA',77);
insert into fe_course values(null,1,'ASP',55);
insert into fe_course values(null,1,'C#',99);
insert into fe_course values(null,1,'C++',66);
insert into fe_course values(null,1,'C',88);
insert into fe_course values(null,1,'VB',44);
insert into fe_course values(null,1,'VFP',65);insert into fe_course values(null,2,'JAVA',99);
insert into fe_course values(null,2,'ASP',88);
insert into fe_course values(null,2,'C#',94);
insert into fe_course values(null,2,'C++',77);
insert into fe_course values(null,2,'C',85);
insert into fe_course values(null,2,'VB',66);
insert into fe_course values(null,2,'VFP',78);
我要做的查询是:from Course c where c.sid=? order by c.score asc
这句HQL语句是报错:org.hibernate.QueryException: could not resolve property: sid of: com.free.exam.domain.Course [from com.free.exam.domain.Course c where c.sid=? order by c.score asc]我知道这HQL写的不对,我不会写外连接之类的sql语句(mysql数据库),麻烦哪位大大 帮我写出意思如 from Course c where c.sid=? order by c.score asc的HQL语句
create table fe_student(
sid int not null auto_increment,
sno varchar (20),
studentname varchar(50),
password varchar(50),
primary key (sid)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into fe_student values(1,'078325023','邱文彬','gnzLDuqKcGxMNKFokfhOew==');
insert into fe_student values(2,'078325032','晓晓','gnzLDuqKcGxMNKFokfhOew==');-----gnzLDuqKcGxMNKFokfhOew== 即 12345
Course 外键 多方--考试科目表
drop table fe_course;
CREATE TABLE `fe_course` (
`cno` int(11) NOT NULL auto_increment,
`sid` int(11) default NULL,
`coursename` varchar(255) default NULL,
`score` int(11) default NULL,
PRIMARY KEY (`cno`),
KEY `FK5FCDCB9B878B7AB9` (`sid`),
CONSTRAINT `FK5FCDCB9B878B7AB9` FOREIGN KEY (`sid`) REFERENCES `fe_student` (`sid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into fe_course values(null,1,'JAVA',77);
insert into fe_course values(null,1,'ASP',55);
insert into fe_course values(null,1,'C#',99);
insert into fe_course values(null,1,'C++',66);
insert into fe_course values(null,1,'C',88);
insert into fe_course values(null,1,'VB',44);
insert into fe_course values(null,1,'VFP',65);insert into fe_course values(null,2,'JAVA',99);
insert into fe_course values(null,2,'ASP',88);
insert into fe_course values(null,2,'C#',94);
insert into fe_course values(null,2,'C++',77);
insert into fe_course values(null,2,'C',85);
insert into fe_course values(null,2,'VB',66);
insert into fe_course values(null,2,'VFP',78);
我要做的查询是:from Course c where c.sid=? order by c.score asc
这句HQL语句是报错:org.hibernate.QueryException: could not resolve property: sid of: com.free.exam.domain.Course [from com.free.exam.domain.Course c where c.sid=? order by c.score asc]我知道这HQL写的不对,我不会写外连接之类的sql语句(mysql数据库),麻烦哪位大大 帮我写出意思如 from Course c where c.sid=? order by c.score asc的HQL语句
解决方案 »
- 急!B2B和B2C项目中的支付模块如何讲述
- java连接sql server 2005出现问题
- myeclipse 与 tomcat 问题
- Tomcat服务器原理
- 获得一个InputStream,里面数据是xml,如何删除其中若干行数据呢?
- JAMES配置的邮件服务器不能收发外网邮件
- 各位熟悉财务的兄弟,请进来指教一下,这个问题非常困扰俺,谢谢
- tomcat的安全解决方案(SSL)
- 超级菜鸟的问题:关于JDK在98下的安装和测试
- FileOutputStream怎么导出Excel到客户端
- Hibernate 查询语句错误hql(多表查询)
- struts1中如何将textarea标签上的数据收集到ActionForm中
private static final long serialVersionUID = 1L;
private Integer sid;
private String sno;
private String studentname;
private String password;
private Set cours;
public Student() {
super();
}
public Student(String sno, String studentname, String password) {
super();
this.sno = sno;
this.studentname = studentname;
this.password = password;
}
//---------------剩余set get}
Student.hbm.xml<hibernate-mapping package="com.free.exam.domain">
<class name="Student" table="fe_student">
<id name="sid" type="integer">
<column name="sid" />
<generator class="native" />
</id>
<property name="sno" column="sno" />
<property name="studentname" column="studentname" />
<property name="password" column="password" />
<set name="cours" cascade="all"
lazy="false" >
<key column="sid" />
<one-to-many class="Course"/>
</set>
</class>
</hibernate-mapping>
多方----Coursepackage com.free.exam.domain;public class Course implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer cno;
// private String sno;
private String coursename;
private Integer score;
private Student student;
public Course() {
super();
}
public Course( String coursename, Integer score) {
super();
this.coursename = coursename;
this.score = score;
}
//---------剩余set get
}Course.hbm.xml<hibernate-mapping package="com.free.exam.domain">
<class name="Course" table="fe_course">
<id name="cno" column="cno">
<generator class="native" />
</id>
<property name="coursename" column="coursename" />
<property name="score" column="score" />
<many-to-one name="student"
column="sid"
lazy="false"
/>
</class>
</hibernate-mapping>我的需求就是:
就是通过sid 查出该学生的 各科成绩来,问题是Course表里没有sid,只有Student。
from Course c where c.student.sid=? order by c.score asc
你查出来的每个学生实体不是都有这么个科目SET了么?通过学生实体就可以得到学生的每科成绩了
Set cours = student.cours
from Course c where c.student.sid=? order by c.score asc