ognl.NoConversionPossible

分别定义了楼层和房间两个类,其中,楼层和房间是双向的一对多关系,两个类的代码如下

package entity;

import java.util.Set;

/**
 * 楼层
 *
 */
public class Floor {

	private String fid;//楼层编号
	private String fdesc;//楼层描述
	
	private Set<Room> rooms;//对多方的引用
	
	public Floor()
	{
		
	}

	public String getFid() {
		return fid;
	}

	public void setFid(String fid) {
		this.fid = fid;
	}

	public String getFdesc() {
		return fdesc;
	}

	public void setFdesc(String fdesc) {
		this.fdesc = fdesc;
	}

	public Set<Room> getRooms() {
		return rooms;
	}

	public void setRooms(Set<Room> rooms) {
		this.rooms = rooms;
	}

	@Override
	public String toString() {
		return fdesc;
	}

	
	
}
package entity;

/**
 * 房间
 * @author user
 *
 */
public class Room {

	private String rid;//房间编号
	private Floor floor;//所在楼层,对一方的引用
	private String rdesc;//房间描述
	
	public String getRid() {
		return rid;
	}
	public void setRid(String rid) {
		this.rid = rid;
	}
	public Floor getFloor() {
		return floor;
	}
	public void setFloor(Floor floor) {
		this.floor = floor;
	}
	public String getRdesc() {
		return rdesc;
	}
	public void setRdesc(String rdesc) {
		this.rdesc = rdesc;
	}
	@Override
	public String toString() {
		return "Room [rdesc=" + rdesc + "]";
	}

	
	
	
	
}
在使用struts2中的iterator遍历集合,列出所有房间列表(包括房间所在楼层)信息时出现了ognl.NoConversionPossible错误,无法查找出房间所在楼层信息,如图

由于是通过房间查找对应的楼层,打开房间类对应的对象关系映射文件

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!--
  ~ Hibernate, Relational Persistence for Idiomatic Java
  ~
  ~ License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  ~ See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  -->
<hibernate-mapping >
	<class name="entity.Room" table="room">
		<id name="rid" type="string">
			<generator class="assigned"></generator>
		</id>
		
		<property name="rdesc" type="string"/>
		
		<many-to-one name="floor" class="entity.Floor" column="fid" ></many-to-one>
	</class>

</hibernate-mapping>

此处多对一关系中默认使用了懒加载方式,所以在没有明确使用到一方的时候hibernate并不会查找一方的信息,应在<many-to-one>标签中加入lazy="false"属性,表示不使用懒加载方式即可解决问题




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值