我的表格是:
sid fname lname subject phno
--- ----- ----- -------- -----
1 vvk v math 4444
1 vvk v read 4444
2 hari h math 5555
2 hari h read 5555
3 kalyan k math 6666
3 kalyan k read 6666我如何显示学生选修数学或阅读的单个记录,如下所示:
1 vvk v math 4444如何在hibernate中编写查询来获得上述输出?
该表包含sid和主题字段上的复合id
Mysql映射文件是
Student.hbm.xml:
<composite-id>
<key-property name="sid" column="sid" type="string"/>
<key-property name="subject" column="subject" type="string"/>
</composite-id>发布于 2013-06-29 18:57:11
如果PK是sid,subject,那么Student实体的ID应该是一个包含这两个字段的类,您可以像使用非复合主键一样使用它:
StudentKey key = new StudentKey(someSid, someSubject);
Student student = (Student) session.get(Student.class, key);如果这不够清楚,那么编辑您的问题,并显示您是如何定义映射到此表的实体的。
发布于 2013-06-29 19:35:29
使用这种组合键,只需创建一个Student实例并设置键的属性。然后,您可以使用session.load()方法将所需的行加载到实例中。请按照下面的示例操作:
Student student = new Student();
student.setSid("1");
student.setSubject("math");
session.load(Student.class, student);对session.load(Student.class, student)的调用将把这个学生的持久状态加载到student实例中。
https://stackoverflow.com/questions/17378882
复制相似问题