解决方案 »
- 求助...SSH框架下使用jasperReport导出报表出现空指针异常
- 怎么循环提取FORM表单中的数据
- 如何以id.html方式读取数据库记录
- 执行修改的时候org.hibernate.exception.GenericJDBCException: could not execute query
- 关于接口的问题,请高手指点一下,在线等,急用!!!!!!!!!!
- 只要是调用javax.servlet包就会包错不能编译生成.class文件.
- 时间问题
- 如何往封装好的HQL语句里传值的问题
- 高手来帮我看看这个错
- 一个关于 HttpServlet 的问题
- 最近在做java打印,一点头绪都没有,哥哥姐姐们出来救命啊,最好提供一个可以运行的例子
- 一个EL表达式
贴出你的页面代码和两个实体的代码看看
Student room
id, name, room_id id, address
现在ognl去遍历, 只遍历到student中的内容, 遍历不到room表中的内容
private int id;
private String address;
}
这 里没有一对多.你怎么取得对象.
String str = "from Student";
Query query = session.createQuery(str);
Iterator it = query.list().iterator();
while(it.hasNext()){
Student st = (Student)it.next();
System.out.print(st.getId());
System.out.print(st.getName());
System.out.print(st.getRoom().getId());
System.out.print(st.getRoom().getAddress());
}
因为这里的session 没有关闭(没有看到session.close()至少在getRoom().getAddress()).所以你可以取得 st.getRoom() ,它应该是又发一条SQL查询了.
Dao返回: List list = getHibernateTemplate().find("from Student");
这里查询的是学生.也就是你查到学生表,然后SESSION就关了.如果要得到房间,那就要再发一条SQL查询.但这里SESSION关闭了.无法得到.你要配置hbm.xml 里.
<many-to-one name="room" lazy="false" fetch="join" class="xx.Room">
<column name="roomid"/>
</many-to-one>
private Room room;
这是我的many-to-one代码
<hibernate-mapping>
<class name="tables.Student" table="student">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name" column="name" />
<many-to-one name="room"
column="room_id"
class="tables.Room"
cascade="all"
outer-join="true" />
</class>
</hibernate-mapping>然后遍历${student.room.address}还是空, 换成你的many-to-one代码还是一样, 是不是student.room.address这格式不对呢? 应该怎么写?
public class Student { private int id;
private String name;
private Room room;还是取不到
org.hibernate.LazyInitializationException: could not initialize proxy - no Session
lazy='true' 出错是正常的.
最好是你把生成的SQL拿出来看看.这个不难吧.
public List find(){
List query = getHibernateTemplate().find("from Student");
}
List query = super.getSession().createQuery("from Student");
}
这样子试试看