hibernatehibernate4 映射文件件问题

hibernate的映射文件配置_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
hibernate的映射文件配置
上传于||文档简介
&&详​细​讲​解​了​h​i​b​e​r​n​a​t​e​的​配​置
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩6页未读,继续阅读
你可能喜欢总体是写一个简易的OA,现在是做到论坛模块。这是这几个模块的类图,论坛中只用到了,Forum,Article,Topic,Reply,User。Topic和Reply都继承Article()这个类,现在在hibernate中映射这个继承关系,用的是&joined-subclass/& 但是报下面这个异常:org.hibernate.MappingException: Could not get constructor
org.hibernate.persister.entity.JoinedSubclassEntityPersister at org.hibernate.persister.internal.PersisterFactoryImpl.create(PersisterFactoryImpl.:185) at org.hibernate.persister.internal.PersisterFactoryImpl.createEntityPersister(PersisterFactoryImpl.java:135) at org.hibernate.internal.SessionFactoryImpl.&init&(SessionFactoryImpl.java:383) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1750) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1788) at com.oa.util.InitSchme.Schema(InitSchme.java:24) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) at org.junit.runners.ParentRunner.run(ParentRunner.java:300) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)Caused by: org.hibernate.HibernateException: Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTuplizer] at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:138) at org.hibernate.tuple.entity.EntityTuplizerFactory.constructDefaultTuplizer(EntityTuplizerFactory.java:188) at org.hibernate.tuple.entity.EntityMetamodel.&init&(EntityMetamodel.java:341) at org.hibernate.persister.entity.AbstractEntityPersister.&init&(AbstractEntityPersister.java:507) at org.hibernate.persister.entity.JoinedSubclassEntityPersister.&init&(JoinedSubclassEntityPersister.java:131) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.hibernate.persister.internal.PersisterFactoryImpl.create(PersisterFactoryImpl.java:163) ... 28 moreCaused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.hibernate.tuple.entity.EntityTuplizerFactory.constructTuplizer(EntityTuplizerFactory.java:135) ... 37 moreCaused by: org.hibernate.PropertyNotFoundException: Could not find a getter for lastRply in class com.oa.domain.Topic at org.hibernate.property.BasicPropertyAccessor.createGetter(BasicPropertyAccessor.java:316) at org.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:310) at org.hibernate.mapping.Property.getGetter(Property.java:321) at org.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEntityTuplizer.java:436) at org.hibernate.tuple.entity.AbstractEntityTuplizer.&init&(AbstractEntityTuplizer.java:200) at org.hibernate.tuple.entity.PojoEntityTuplizer.&init&(PojoEntityTuplizer.java:82) ... 42 more// 这是Article&?xml ="1.0"?&&!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"&&hibernate-mapping ="com.oa.domain"& &class name="Article" table="t_article"&
&id name="id"&
&generator class="native"/&
&property name="title"&&/property&
&property name="content" type="text" length="65535"&&/property&
&property name="faceIcon"&&/property&
&property name="postDate" type="timestamp"&&/property&
&property name="ipAddr"&&/property&
&!-- 我与User的多对一 --&
&many-to-one name="author" class="User" column="authorId"&&/many-to-one&
&!-- 子类:Topic --&
&joined-subclass name="Topic" table="t_topic"&
&key column="id"&&/key&
&property name="replyCount"&&/property&
&property name="lastUpdateTime" type="timestamp"&&/property&
&property name="type"&&/property&
&!-- 我与Reply的一对多 --&
&set name="replies"&
&key column="topicId"&&/key&
&one-to-many class="Reply"/&
&!-- 我与Reply的一对一 --&
&many-to-one name="lastRply" class="Reply" column="lastReplyId" unique="true"&&/many-to-one&
&!-- 我与Forum的多对一 --&
&many-to-one name="forum" class="Forum" column="forumId"&&/many-to-one&
&/joined-subclass&
&!-- 子类:Reply --&
&joined-subclass name="Reply" table="t_reply"&
&key column="id"&&/key&
&property name="floor"&&/property&
&!-- 我与Topic的多对一 --&
&many-to-one name="topic" class="Topic" column="topicId"&&/many-to-one&
&/joined-subclass&
&/class&&/hibernate-mapping&/**
* @Title: Article.java
* @Package com.oa.domain
* @Description:
* @author 姚郅威 * @date
下午8:46:45
* @version V1.0
*/package com.oa.import java.util.D/** * 文章 *
* @ClassName: Article * @Description: * @author 姚郅威 *
*/public abstract class Article { private L private S // 标题 private S // 内容 private String faceI // 表情符号 private Date postD // 发表时间 private String ipA // 发表文章时所用的Ip private U// 作者 public Long getId() {
} public void setId(Long id) {
this.id = } public String getTitle() {
} public void setTitle(String title) {
this.title = } public String getContent() {
} public void setContent(String content) {
this.content = } public String getFaceIcon() {
return faceI } public void setFaceIcon(String faceIcon) {
this.faceIcon = faceI } public Date getPostDate() {
return postD } public void setPostDate(Date postDate) {
this.postDate = postD } public String getIpAddr() {
return ipA } public void setIpAddr(String ipAddr) {
this.ipAddr = ipA } public User getAuthor() {
} public void setAuthor(User author) {
this.author = }}/**
* @Title: Topic.java
* @Package com.oa.domain
* @Description: TODO(用一句话描述该文件做什么)
* @author 姚郅威 * @date
上午8:59:37
* @version V1.0
*/package com.oa.import java.util.Dimport java.util.HashSimport java.util.S/** * @ClassName: Topic * @Description:
* @author 姚郅威 *
*/public class Topic extends Article { /**
*/ public static final int TYPE_NORMAL = 0; /**
*/ public static final int TYPE_BEST = 1; /**
*/ public static final int TYPE_TOP = 2; private int replyC // 回复数量 private Date lastUpdateT // 最后更新时间(主题发表的时间或最后回复的时间) // 帖子类型 private Reply lastR// 最后回复 private Set&Reply& replies = new HashSet&Reply&(); private F// 所属板块 public int getReplyCount() {
return replyC } public void setReplyCount(int replyCount) {
this.replyCount = replyC } public Date getLastUpdateTime() {
return lastUpdateT } public void setLastUpdateTime(Date lastUpdateTime) {
this.lastUpdateTime = lastUpdateT } public int getType() {
} public void setType(int type) {
this.type = } public Reply getLastReply() {
return lastR } public void setLastReply(Reply lastReply) {
this.lastReply = lastR } public Set&Reply& getReplies() {
} public void setReplies(Set&Reply& replies) {
this.replies = } public Forum getForum() {
} public void setForum(Forum forum) {
this.forum = }}找不出来错误,只能出外求了,虽然有那么一丢丢长,但是
麻烦看下给出您的宝贵意见啊!
--------------------------------------
* @Title: Reply.java
* @Package com.oa.domain
* @Description: TODO(用一句话描述该文件做什么)
* @author 姚郅威 * @date
上午9:00:09
* @version V1.0
*/package com.oa./** * @ClassName: Reply * @Description: 回复 * @author 姚郅威 *
*/public class Reply extends Article{ private T// 所属主题 // 楼层 public Topic getTopic() {
} public void setTopic(Topic topic) {
this.topic = } public int getFloor() {
} public void setFloor(int floor) {
this.floor = }}
--------------------------------------
好吧。 我表示我找到问题了,lastReply少写了一个e ............写成了lastRply.....我愧对论坛的兄弟姐妹,叔叔阿姨,大爷大叔。。。。。无颜面对父老乡亲了。。。啊!!!!!我就是在发帖的时候发现的,对的!!!就是发完的时候!!对的!!就是刚发完,我看到了异常的最后一个提示!!!尼玛。 好吧。 还是谢谢大家。分不多,回帖就给分,谢谢。Hibernate中,各表映射文件...hbm.xml详解
配置文件的基本结构如下:
&?xml version="1.0"
encoding='UTF-8'?&&&&&
&!DOCTYPE hibernate-mapping
&&"-//Hibernate/Hibernate Mapping
DTD 3.0//EN"&&
&&"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&&&
&hibernate-mapping package=""&&&
name="" table=""&&&
name="java" column="" type=""&&&
&&&&&&&&&&&generator
class=""/&&&
&&&&&&&/id&&&
&&&&&&&&&&……&&
&&&&&/class&&&
&/hibernate-mapping&& &
1) assignedsave()
2) hilohi/lo
3) seqhilohilo hi/lo
Sequence Oracle
4) increment1
5) identityDB2SQL ServerMySQL
6) sequencesequence Oralce
identityhilosequence
8) uuid.hex
Hibernate 128
9) uuid.stringuuid.hex 16
PostgreSQL
10) foreign
&id name="id" column="id"
type="java.lang.Integer"&&&
&&&&&&&&&&&&&&generator
class="native"/&&&
&property name="accessname" column="accessName" type="java.lang.String" not-null="true"
&property name="state" column="state"
type="java.lang.Byte" not-null="true"
&&property name="description" column="description" type="java.lang.String" /&&
&&many-to-one…/&&set…&&/set&
id“”“”
…hbm.xml“”&set…&&/set&“”
&set name="java" inverse="true"
lazy="true"&&&
&&&key column=""/&&&
&&&&&&one-to-many
class=""/&&&
&set name="userSet" inverse="true"
lazy="true"&&&
&&&&&&&key
column="orgId"/&&&
&&&&&&&one-to-many
class="User"/&&&
&many-to-one name="java" column="" class="" not-null="true"
&many-to-one name="org" column="orgId"
class="Organization" not-null="true"
4. &one-to-one…/&
USERPASSWDHibernate
&one-to-one name="" class="" cascade="save-update"/&&&
&one-to-one name="password" class="com.amigo.dao.pojo.Passwd" cascade="save-update"/&&&
&one-to-one name="" class="" constrained="true" /&&&
&one-to-one name="user" class="com.amigo.dao.pojo.User " constrained="true" /&&&
5. &many-to-many…/&
&set name="java" table="" cascade="all"
outer-join="false"&&&&&
column=""/&&&&&
&&&&&many-to-many
class="" column=""/&&&&&
&/set&&&&&
&!-- t_user
&set name="roleSet" table="t_user"
cascade="all" outer-join="false"&&&&&
column="roleId"/&&&&&
&&&&&many-to-many
class="com.amigo.dao.pojo.Role" column="roleId"/&&&&&
&/set&&&&&
&!-- t_role
&set name="userSet" table="t_role"
cascade="all" outer-join="false"&&&&&
column="roleId"/&&&&&
&&&&&many-to-many
class="com.amigo.dao.pojo.User" column="roleId"/&&&&&
.hbm.xmltbl_usertbl_user_roletbl_roletbl_organization
&?xml version="1.0"
encoding='UTF-8'?&&&
&!DOCTYPE hibernate-mapping
&&&&&&&&&&"-//Hibernate/Hibernate
Mapping DTD 3.0//EN"&&
&&&&&&&"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"&&&
&hibernate-mapping package="com.amigo.dao.pojo"&&&
&&&&&class
name="User" table="tbl_user"&&&
name="loginname" column="loginName" type="java.lang.String"&&&
&&&&&&&&&&&generator
class="assigned"/&&&
&&&&&&/id&&&
&&&&&&property
name="name" column="name"
type="java.lang.String" not-null="true"
&&&&&&property
name="password" column="password" type="java.lang.String" not-null="true"
&&&&&&property
name="mobile" column="mobile"
type="java.lang.String" /&&&
&&&&&&property
name="telephone" column="telephone" type="java.lang.String" /&&&
&&&&&&property
name="email" column="email"
type="java.lang.String" /&&&
&&&&&&property
name="createtime" column="createTime" type="java.util.Date" not-null="true"
&&&&&&property
name="lastlogintime" column="lastLoginTime" type="java.util.Date" /&&&
&&&&&property
name="logintimes" column="loginTimes" type="java.lang.Long" not-null="true"
&&&&&&property
name="state" column="state"
type="java.lang.Byte" not-null="true"
&&&&&property
name="description" column="description" type="java.lang.String" /&&&
&&&&&many-to-one
name="organization" column="orgId"
class="Organization" not-null="true"
name="userRoleSet" inverse="true"
cascade="all-delete-orphan" lazy="true"&&&
&&&&&&&&&key
column="loginName"/&&&
&&&&&&&&&one-to-many
class="UserRole"/&&&
&&&&&/set&&&
&/hibernate-mapping&&&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&}

我要回帖

更多关于 hibernate 关系映射 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信