200分求一hibernate问题,顺便散分,给出问题意见者有分,UP之类无分!谢谢

kaymo 2005-01-20 10:45:12
异常错误信息:

net.sf.hibernate.MappingException: Error reading resource: com/us/po/login/LoginRole.hbm.xml

at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:318)

at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:976)

at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:928)

at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:856)

at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:842)

at com.us.util.HibernateUtil.getSession(HibernateUtil.java:23)

at com.us.dao.common.DAOContext.getSession(DAOContext.java:42)

at com.us.dao.common.DAOImplBase.getSession(DAOImplBase.java:34)

at com.us.dao.common.DAOImplBase.save(DAOImplBase.java:73)

at com.us.logic.hibernatetest.main(hibernatetest.java:37)

Caused by: net.sf.hibernate.MappingException: duplicate import: LoginRole

at net.sf.hibernate.cfg.Mappings.addImport(Mappings.java:85)

at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:126)

at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:221)

at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1229)

at net.sf.hibernate.cfg.Configuration.add(Configuration.java:249)

at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:285)

at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:315)

... 9 more

com.us.util.DataAccessException: net.sf.hibernate.MappingException: Error reading resource: com/us/po/login/LoginRole.hbm.xml

at com.us.dao.common.DAOImplBase.save(DAOImplBase.java:81)

at com.us.logic.hibernatetest.main(hibernatetest.java:37)

Caused by: net.sf.hibernate.MappingException: Error reading resource: com/us/po/login/LoginRole.hbm.xml

at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:318)

at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:976)

at net.sf.hibernate.cfg.Configuration.doConfigure(Configuration.java:928)

at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:856)

at net.sf.hibernate.cfg.Configuration.configure(Configuration.java:842)

at com.us.util.HibernateUtil.getSession(HibernateUtil.java:23)

at com.us.dao.common.DAOContext.getSession(DAOContext.java:42)

at com.us.dao.common.DAOImplBase.getSession(DAOImplBase.java:34)

at com.us.dao.common.DAOImplBase.save(DAOImplBase.java:73)

... 1 more

Caused by: net.sf.hibernate.MappingException: duplicate import: LoginRole

at net.sf.hibernate.cfg.Mappings.addImport(Mappings.java:85)

at net.sf.hibernate.cfg.Binder.bindClass(Binder.java:126)

at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:221)

at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1229)

at net.sf.hibernate.cfg.Configuration.add(Configuration.java:249)

at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:285)

at net.sf.hibernate.cfg.Configuration.addResource(Configuration.java:315)

... 9 more
...全文
109 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaymo 2005-01-21
  • 打赏
  • 举报
回复
to:sgdb(神天月晓) ( )

呵呵 谢谢 竟然犯这种错误

sgdb 2005-01-21
  • 打赏
  • 举报
回复
哦,是联合主键,equals还是要的

<composite-id name="LoginRolePK" class="com.us.po.login.LoginRolePK" >
是不是你的实例名和类名一致产生了问题??换个name看看

在多说一句,hb不建议使用联合主键,用这个东西很麻烦。
kaymo 2005-01-21
  • 打赏
  • 举报
回复
说明是没找到主键loginRolePK类
但我放在同一个包下的,路径应该是对的啊 晕
可看配置文件
kaymo 2005-01-21
  • 打赏
  • 举报
回复
to:sgdb(神天月晓)
去掉equals方法没用,还是报同样的异常
怎样查看是否加载了两次?谢谢

to:drugon(想换工作,准备跳槽................................)
我把
Configuration conf = new Configuration().configure();改成只加载
Configuration conf = new Configuration().addClass( LoginRole.class );
则报异常



net.sf.hibernate.MappingException: Error reading resource: com/us/po/login/LoginRole.hbm.xml

at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:336)

at com.us.util.HibernateUtil.getSession(HibernateUtil.java:22)

at com.us.dao.common.DAOContext.getSession(DAOContext.java:42)

at com.us.dao.common.DAOImplBase.getSession(DAOImplBase.java:34)

at com.us.dao.common.DAOImplBase.save(DAOImplBase.java:73)

at com.us.logic.hibernatetest.main(hibernatetest.java:37)

Caused by: net.sf.hibernate.PropertyNotFoundException: field not found: LoginRolePK

at net.sf.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:74)

at net.sf.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:80)

at net.sf.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:88)

at net.sf.hibernate.util.ReflectHelper.getter(ReflectHelper.java:65)

at net.sf.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:74)

at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:285)

at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1229)

at net.sf.hibernate.cfg.Configuration.add(Configuration.java:249)

at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:285)

at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:333)

... 5 more

com.us.util.DataAccessException: net.sf.hibernate.MappingException: Error reading resource: com/us/po/login/LoginRole.hbm.xml

at com.us.dao.common.DAOImplBase.save(DAOImplBase.java:81)

at com.us.logic.hibernatetest.main(hibernatetest.java:37)

Caused by: net.sf.hibernate.MappingException: Error reading resource: com/us/po/login/LoginRole.hbm.xml

at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:336)

at com.us.util.HibernateUtil.getSession(HibernateUtil.java:22)

at com.us.dao.common.DAOContext.getSession(DAOContext.java:42)

at com.us.dao.common.DAOImplBase.getSession(DAOImplBase.java:34)

at com.us.dao.common.DAOImplBase.save(DAOImplBase.java:73)

... 1 more

Caused by: net.sf.hibernate.PropertyNotFoundException: field not found: LoginRolePK

at net.sf.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:74)

at net.sf.hibernate.property.DirectPropertyAccessor.getField(DirectPropertyAccessor.java:80)

at net.sf.hibernate.property.DirectPropertyAccessor.getGetter(DirectPropertyAccessor.java:88)

at net.sf.hibernate.util.ReflectHelper.getter(ReflectHelper.java:65)

at net.sf.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:74)

at net.sf.hibernate.cfg.Binder.bindRootClass(Binder.java:285)

at net.sf.hibernate.cfg.Binder.bindRoot(Binder.java:1229)

at net.sf.hibernate.cfg.Configuration.add(Configuration.java:249)

at net.sf.hibernate.cfg.Configuration.addInputStream(Configuration.java:285)

at net.sf.hibernate.cfg.Configuration.addClass(Configuration.java:333)

... 5 more

Exception in thread "main"
drugon 2005-01-21
  • 打赏
  • 举报
回复

Caused by: net.sf.hibernate.MappingException: Error reading resource: com/us/po/login/LoginRole.hbm.xml

Caused by: net.sf.hibernate.MappingException: duplicate import: LoginRole
先查一下这两个原因,第一条可能是你的文件路径不对,所以会那样报错。

第二个就是楼上所讲的,可能重复导入包了。
sgdb 2005-01-21
  • 打赏
  • 举报
回复
还有你在加载的时候是不是加载了两次??
sgdb 2005-01-21
  • 打赏
  • 举报
回复
双重导入

把你的equals方法去掉
showstv 2005-01-21
  • 打赏
  • 举报
回复
Caused by: net.sf.hibernate.MappingException: duplicate import: LoginRole


应该是这个原因吧??
syilo 2005-01-21
  • 打赏
  • 举报
回复
UP!
genggjh 2005-01-21
  • 打赏
  • 举报
回复
是不是有两个相同的LoginRole.hbm.xml在classpath中。
kaymo 2005-01-20
  • 打赏
  • 举报
回复
复写的hashcode和equals方法

public int hashCode() {
int result;
result = ( userId != null ? userId.hashCode() : 0 );
result = 29 * result + ( funId != null ? funId.hashCode() : 0 );
return result;
}


public boolean equals( Object obj ) {
if ( this == obj ) {
return true;
}
if ( ! ( obj instanceof LoginRolePK ) ) {
return false;
}
LoginRolePK lRole = ( LoginRolePK ) obj;
if ( userId != null ? !userId.equals( lRole.userId ) : lRole.userId != null ) {
return false;
}
if ( funId != null ? !funId.equals( lRole.funId ) :
lRole.funId != null ) {
return false;
}
return true;
}
kaymo 2005-01-20
  • 打赏
  • 举报
回复
组合PK

<?xml version="1.0" encoding='GBK'?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
" http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd ">

<hibernate-mapping>

<class name="com.us.po.login.LoginRole" table="loginrole">
<composite-id name="LoginRolePK" class="com.us.po.login.LoginRolePK" >
<key-property name="userId" column="USER_ID" type="String" />
<key-property name="funId" column="FUN_ID" type="String"/>
</composite-id>
</class>
</hibernate-mapping>

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧