Project是一个基础类,begin是一个java.sql.Date类型的属性,Project.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 ">
<hibernate-mapping package= "com.hbucc.research.objects ">
<class name= "Project " table= "project " lazy= "false ">
<id name= "projectid " column= "projectid " type= "long ">
<generator class= "increment "/>
</id>
<property name= "projectname " column= "projectname " type= "string " not-null= "true "/>
<property name= "begin " column= "begin " type= "date "/>
<property name= "end " column= "begin " type= "date "/>
<property name= "amount " column= "amount " type= "int " not-null= "true "/>
<property name= "validate " column= "validate " type= "boolean " not-null= "true "/>
<many-to-one name= "teacher " column= "teacherid " class= "com.hbucc.research.objects.Teacher " not-null= "true "/>
<many-to-one name= "tasksource " column= "tasksourceid " class= "com.hbucc.research.objects.TaskSource " not-null= "true "/>
<many-to-one name= "institute " column= "instituteid " class= "com.hbucc.research.objects.Institute " not-null= "true "/>
</class>
</hibernate-mapping>
运行时确总让加上insert= "false " update= "false ",出错如下:
org.hibernate.MappingException: Repeated column in mapping for entity: com.hbucc.research.objects.Project column: begin (should be mapped with insert= "false " update= "false ")
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:575)
at org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:597)
at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:615)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:405)
at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
at org.hibernate.cfg.Configuration.validate(Configuration.java:984)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1169)
at com.hbucc.research.businesslogic.BusinessLogic. <clinit> (BusinessLogic.java:33)
at com.hbucc.research.struts.loginAction.execute(loginAction.java:22)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
只所以报错是由于上面映射文件中的end、begin同事映射到begin列中。在hibernate中实体类中可以有多个属性映射到表中的,但是只能有一个属性能够影响数据库中该列的值。可以把其他列设置为只读的,即update="false" insert="false" 。
分享到:
相关推荐
hibernate 对象关系映射总结hibernate 对象关系映射总结hibernate 对象关系映射总结
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的...
hibernate 无主键表映射资源说明: 1. 简单Demo 2. Demo对应的sql语句 3. 对应博客文档
Hibernate映射解析 七种映射关系
Hibernate XML配置表映射实例
Hibernate中的各种映射关系,使用列表进行详细解析,避免初学者混淆各种关联映射关系。
hibernate中容器映射技术 详解各种容器的映射
Hibernate_关联关系映射配置详解,希望能帮助广大java爱好者
"自动生成 Hibernate 映射文件和实体类" 自动生成 Hibernate 映射文件和实体类是使用 MyEclipse 工具来实现的,这可以大大提高开发效率,减少开发时间。下面将详细介绍如何使用 MyEclipse 自动生成 Hibernate 映射...
Hibernate4中映射关系图解。
Hibernate_关联关系映射配置
个人的很详细的Hibernate一对一映射配置详解,对初学者有帮助!
NULL 博文链接:https://1028826685.iteye.com/blog/1536060
Hibernate对象关系映射一对多 很基础等文档
便于同学们更好的学习hibernate,其中包含了hibernate的七种映射管、关系
hibernate集合的映射 集合的映射 set list array map
hibernate中的集合映射,各种集合类型的使用方法及适用场景
Hibernate 多表映射关系配置 如,一对一 多对一 多对多等
Hibernate一对多映射
Hibernate 关联关系映射分类