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"属性,表示不使用懒加载方式即可解决问题




微信扫码订阅
UP更新不错过~
关注
  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

cbs9588

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值