组合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>
<!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>
解决方案 »
- 怎么处理大数据量的复杂查询?
- 用什么数据库好
- 数据库驱动问题
- 提一个菜鸟问题,关于JPA的
- java web start中如何通过jnlp连接数据库?
- Error 500: 错误提示!SOS
- myeclipse下用jboss开发如何在启动jboss增加用户jar包
- jfreechart一个问题的讨论
- java网络编程,有关webserver的一个问题
- 关于“Struts with XSLT and XML ”的Model2X的问题
- jdbc 连接mssqlserver2000失败,操作系统为win2003.同样的配置在win2000中无任何问题
- 一个文件被转换成base64编码的字符串后,作为结点的值写入到一个xml文件(编码形式UTF-8)里,如何由xml文件里面的结点值(字符串)还原为
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;
}
应该是这个原因吧??
Caused by: net.sf.hibernate.MappingException: Error reading resource: com/us/po/login/LoginRole.hbm.xmlCaused by: net.sf.hibernate.MappingException: duplicate import: LoginRole
先查一下这两个原因,第一条可能是你的文件路径不对,所以会那样报错。第二个就是楼上所讲的,可能重复导入包了。
去掉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 morecom.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 moreCaused 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 moreException in thread "main"
但我放在同一个包下的,路径应该是对的啊 晕
可看配置文件
是不是你的实例名和类名一致产生了问题??换个name看看在多说一句,hb不建议使用联合主键,用这个东西很麻烦。