日期:2014-05-16  浏览次数:20406 次

Dorado前台DataSet中的数据传到后台用Hibernate保存到数据库中

Dorado前台DataSet中的数据传到后台用Hibernate保存到数据库中,Hibernate不能识别该对象,如果强行保存会报如下错误:

严重: Fail to save persistentObject
org.hibernate.MappingException: Unknown entity: org.zzuli.noc.dhcp.DHCPDomain$$EnhancerByCGLIB$$f077626c
	at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:693)
	at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1485)
。。。。。。
com.sybase.orm.dao.DaoException: Fail to save persistentObject
。。。。。。。

?

Hibernate实现懒加载的话,通过Hibnate获得的数据传送到前台Dorado不能识别,如果强行加载回报如下错误:

严重: Fail to load all 
org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of org.zzuli.noc.dhcp.AddressPool.version
	at org.hibernate.property.DirectPropertyAccessor$DirectSetter.set(DirectPropertyAccessor.java:143)
	at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:583)
	at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:229)
。。。。。。。。。。
严重: java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

?第一个问题是Hibenate不识别DataSet数据,应该是DataSet迭代强制转化为Model对象时有脏数据残留,可以通过设置全部清楚该脏数据。第二个问题是DataSet不识别关联数据,应该可以通过设置Dorado的Models之间的管理关系识别该关联数据。但是两个都没有在Dorado的官方文件中没有找到对应的解决方法,还请高手指教。目前解决的方法是:针对问题一,使用Dataset中的数据信息重新生成干净的Model对象,不再直接对强制转换Model对象保存;针对第二个问题,只能分步将数据导入到Dorado的Model层中,不再一次导入。