读书人

[100分]求救Hibernate映射配置有关问题

发布时间: 2012-01-10 21:26:51 作者: rapoo

[100分]求救Hibernate映射配置问题!
我是用了Eclipse3.1 + MyEclipse4.1让Hibernate插件自动创建映射文件和类文件。
但是不知道为什么老是抱错:
org.hibernate.DuplicateMappingException: Duplicate collection role mapping chat.hibernate.pojo.User.chatDatas

具体配置:
////////////////////////////////////////////////////////////////////
我的数据库建表语句如下:

create table USER(
idnumber(10) primary key,
name varchar2(30) not null,
passwordvarchar2(30)null
);

create table CHAT_DATA(
idnumber(10) primary key,
useridnumber(10)references USER(id),
datavarchar2(4000)null,
timedate
);

////////////////////////////////////////////////////////////////////////////////
hibernate.cfg.xml文件配置如下:

<?xml version= '1.0 ' encoding= 'UTF-8 '?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN "
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd ">

<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>

<session-factory>
<property name= "connection.username "> vickcy </property>
<property name= "connection.url "> jdbc:pointbase:server://localhost/chat </property>
<property name= "dialect "> org.hibernate.dialect.PointbaseDialect </property>
<property name= "myeclipse.connection.profile "> chat </property>
<property name= "connection.password "> vickcy </property>
<property

name= "connection.driver_class "> com.pointbase.jdbc.jdbcUniversalDriver </property>

<mapping resource= "chat/hibernate/pojo/User.hbm.xml "> </mapping>
<mapping resource= "chat/hibernate/pojo/ChatData.hbm.xml "> </mapping>

</session-factory>

</hibernate-configuration>

/////////////////////////////////////////////////////////////////////////////////////////
User.hbm.xml 文件配置如下:

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN "
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd ">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name= "chat.hibernate.pojo.User " table= "USER ">
<id name= "id " type= "java.lang.Long ">
<column name= "ID " precision= "10 " scale= "0 " />
<generator class= "increment " />
</id>


<property name= "name " type= "java.lang.String ">
<column name= "NAME " length= "30 " not-null= "true " />
</property>
<property name= "password " type= "java.lang.String ">
<column name= "PASSWORD " length= "30 " />
</property>
<set name= "chatDatas " inverse= "true ">
<key>
<column name= "USERID " precision= "10 " scale= "0 " />
</key>
<one-to-many class= "chat.hibernate.pojo.ChatData " />
</set>
</class>
</hibernate-mapping>

////////////////////////////////////////////////////////////////////////////
ChatData.hbm.xml 文件配置如下:

<?xml version= "1.0 "?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN "
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd ">
<!--
Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
<class name= "chat.hibernate.pojo.ChatData " table= "CHAT_DATA ">
<id name= "id " type= "java.lang.Long ">
<column name= "ID " precision= "10 " scale= "0 " />
<generator class= "increment " />
</id>
<many-to-one name= "user " class= "chat.hibernate.pojo.User " fetch= "select ">
<column name= "USERID " precision= "10 " scale= "0 " />
</many-to-one>
<property name= "data " type= "java.lang.String ">
<column name= "DATA " length= "4000 " />


</property>
<property name= "time " type= "java.util.Date ">
<column name= "TIME " length= "10 " />
</property>
</class>
</hibernate-mapping>

[解决办法]
mark
[解决办法]
找了半天没看到你的chat.hibernate.pojo.User类

另外检查路径
[解决办法]
路径错了把。

[解决办法]
你用的什么数据库?

Connection URL 检查有没有错。

路径,检查路径,比较敏感的。

用MyEclipse 的Hibernate支持感觉不是很好,用另外一个开源的Hibernate S....后面不记得怎么拼了。
[解决办法]
不能创建 User表吧? Pointbase 没用过.

不过 User 在很多数据库中都是关键字

Oracle / SQLSERVER 中 create table User 会报错的,
如果要创建 User 表, 要加双引号, 但这样不方便写代码.

你在 pointbase 中测试下

建议换个名字, 比如 Usr
[解决办法]
1.Could not read mappings from resource: chat/hibernate/pojo/Usr.hbm.xml
这是不能读取的意思,到web-info/classes下看一下你的文件是不是没编译

2.hibernate.cfg.xml中的mapping路径是否正确
[解决办法]
chat.hibernate.pojo.Usr.chatDatas这是你的hibernate-mapping文件;
chat.hibernate.pojo.User.chatDatas这是你在hibernate.cfg.xml中的配制.
两个不一样啊,到底是User还是Usr,配制的仔细检查下,一般都是那个地方没注意写错了,不会有太大问题的.

读书人网 >Java Web开发

热点推荐