`
ajjjian
  • 浏览: 8111 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

hibernate3.2 @OneToMany异常

阅读更多
TbComment 类和TbMyDiary 类之间是多对一的关系.
package com.hj.vo;

// default package

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Entity;
import org.hibernate.annotations.Generated;
import org.jaxen.function.FalseFunction;

/**
 * TbComment generated by MyEclipse - Hibernate Tools
 */
@Entity
@Table(name="tbComment") //如不写默认类名
public class TbComment implements java.io.Serializable {

	// Fields 所有没有定义注解的属性等价于在其上面添加了@Basic注解
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 8808366677482487429L;

	private Integer mainid;

	private String content;

	private Date addTime;

	private Integer type;

	private TbMyDiary myDiary;

	/** default constructor */
	public TbComment() {
	}

	/** minimal constructor */
	public TbComment(Integer mainid) {
		this.mainid = mainid;
	}

	/** full constructor */
	public TbComment(Integer mainid, String content, Date addTime, Integer type) {
		this.mainid = mainid;
		this.content = content;
		this.addTime = addTime;
		this.type = type;
		// this.targetId = targetId;
	}

	// Property accessors
	@Id 	@GeneratedValue
	public Integer getMainid() {
		return this.mainid;
	}

	public void setMainid(Integer mainid) {
		this.mainid = mainid;
	}

	public String getContent() {
		return this.content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	@Column(name="add_time",updatable=false,insertable=false)
	public Date getAddTime() {
		return this.addTime;
	}

	public void setAddTime(Date addTime) {
		this.addTime = addTime;
	}

	public Integer getType() {
		return this.type;
	}

	public void setType(Integer type) {
		this.type = type;
	}
	
	@ManyToOne
	@JoinColumn(name="target_id")
	public TbMyDiary getMyDiary() {
		return myDiary;
	}

	public void setMyDiary(TbMyDiary myDiary) {
		this.myDiary = myDiary;
	}

}

package com.hj.vo;

// Generated Mar 1, 2008 12:07:56 AM by Hibernate Tools 3.2.0.CR1

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;

/**
 * TbMyDiary generated by hbm2java
 */
@Entity
public class TbMyDiary implements java.io.Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5391171835504714756L;
	private int mainid;
	private String loginName;
	private String title;
	private String weather;
	private String mood;
	private String content;
	private Date diarytime;
	private Integer openLevel;
	private Integer viewNum;
	private Integer status;
	
	private Set<TbComment> tbComments=new HashSet(0);
	
	public Integer getStatus() {
		return status;
	}

	public void setStatus(Integer status) {
		this.status = status;
	}

	public TbMyDiary() {
	}

	public TbMyDiary(int mainid) {
		this.mainid = mainid;

	}

	public TbMyDiary(int mainid, int FUserid, String loginName, String title,
			String weather, String mood, String content, Date diarytime,
			Integer openLevel) {
		this.mainid = mainid;
		this.loginName = loginName;
		this.title = title;
		this.weather = weather;
		this.mood = mood;
		this.content = content;
		this.diarytime = diarytime;
		this.openLevel = openLevel;
	}

	@Id @GeneratedValue
	public int getMainid() {
		return this.mainid;
	}

	public void setMainid(int mainid) {
		this.mainid = mainid;
	}

	public String getLoginName() {
		return this.loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}

	public String getTitle() {
		return this.title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getWeather() {
		return this.weather;
	}

	public void setWeather(String weather) {
		this.weather = weather;
	}

	public String getMood() {
		return this.mood;
	}

	public void setMood(String mood) {
		this.mood = mood;
	}

	public String getContent() {
		return this.content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public Date getDiarytime() {
		return this.diarytime;
	}

	public void setDiarytime(Date diarytime) {
		this.diarytime = diarytime;
	}

	public Integer getOpenLevel() {
		return this.openLevel;
	}

	public void setOpenLevel(Integer openLevel) {
		this.openLevel = openLevel;
	}

	public Integer getViewNum() {
		return viewNum;
	}

	public void setViewNum(Integer viewNum) {
		this.viewNum = viewNum;
	}

	@OneToMany(mappedBy="myDiary")
	public Set<TbComment> getTbComments() {
		return tbComments;
	}

	public void setTbComments(Set<TbComment> tbComments) {
		this.tbComments = tbComments;
	}

}

在执行Session session=HibernateSessionFactory.getSession();时报如下异常.
%%%% Error Creating SessionFactory %%%%
org.hibernate.AnnotationException: Use of @OneToMany or @ManyToMany targeting an unmapped class: com.hj.vo.TbMyDiary.tbComments[com.hj.vo.TbComment]
at org.hibernate.cfg.annotations.CollectionBinder.bindManyToManySecondPass(CollectionBinder.java:1068)
at org.hibernate.cfg.annotations.CollectionBinder.bindStarToManySecondPass(CollectionBinder.java:600)
at org.hibernate.cfg.annotations.CollectionBinder$1.secondPass(CollectionBinder.java:541)
at org.hibernate.cfg.CollectionSecondPass.doSecondPass(CollectionSecondPass.java:43)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1136)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:324)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1292)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:859)
at com.hj.HibernateSessionFactory.rebuildSessionFactory(HibernateSessionFactory.java:63)
at com.hj.HibernateSessionFactory.getSession(HibernateSessionFactory.java:45)
at com.hj.dao.CommentDAO.insert(CommentDAO.java:21)
at com.hj.dao.CommentDAO.main(CommentDAO.java:14)
分享到:
评论
2 楼 ajjjian 2008-04-16  
@OneToMany(mappedBy="myDiary")   里的mappedBy的值不是TbComment类里的TbMyDiary对象名嘛?
1 楼 Readonly 2008-04-16  
检查大小写错误

相关推荐

    HIBERNATE 一对多 onetomany

    在Hibernate中,这种关系可以通过在实体类中定义`@OneToMany`注解来表示。 **配置实体类** 1. **父实体类**:在这个关系中,"一"端的实体称为父实体。例如,我们用`Student`作为父实体,它有一对多的课程关联。在`...

    开发框架 hibernate3.2

    **开发框架 Hibernate 3.2 知识点详解** Hibernate 是一个广泛使用的开源对象关系映射(ORM)框架,它的核心目标是简化Java应用程序与数据库之间的交互。在Hibernate 3.2版本中,这个框架提供了丰富的功能和改进,...

    Hibernate3.2官方中文参考手册.pdf+Hibernate.pdf(Hibernate的学习资料)

    Hibernate3.2是其发展中的一个重要版本,提供了许多改进和新特性。 在《Hibernate3.2官方中文参考手册》中,我们可以深入学习到以下关键知识点: 1. **对象关系映射(ORM)基础**:ORM的核心思想是将数据库中的...

    hibernate3.2API

    **hibernate3.2 API** 是一个针对Java开发者的重要框架,主要用于简化对象关系映射(ORM)的工作,使得在Java应用中操作数据库变得更加便捷。这个API提供了丰富的接口和类,帮助开发者将业务对象和数据库表之间的...

    hibernate3.2源码

    Hibernate 3.2 是一个历史悠久但仍然非常重要的Java持久化框架,它允许开发人员将对象关系映射(ORM)技术应用到数据库上,使得在Java应用程序中操作数据库变得更加简单和直观。Hibernate 3.2 版本是该框架的一个...

    hibernate3.2 chm 帮助文档

    《Hibernate 3.2 帮助文档》是针对Java开发者的重要参考资料,它详细阐述了Hibernate 3.2版本的框架特性和使用方法。Hibernate是一个开源的Java对象关系映射(ORM)框架,它简化了Java应用与数据库之间的交互,通过...

    Hibernate3.2 Annotations中文文档

    **Hibernate 3.2 Annotations中文文档** Hibernate是一个流行的开源对象关系映射(ORM)框架,它使得Java开发者能够更方便地在数据库上操作对象。在Hibernate 3.2版本中,引入了Annotations特性,这是一种更加简洁...

    hibernate 3.2 官方中文参考手册

    Hibernate 3.2 是该框架的一个版本,提供了许多改进和新特性,使得开发更加高效和灵活。这份官方中文参考手册是开发者理解和使用Hibernate 3.2的重要资源。 一、Hibernate 概述 Hibernate 是一个基于Java的持久化...

    hibernate3.2中文文档

    **Hibernate 3.2 中文文档** Hibernate 是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了数据持久化的解决方案,使得开发者可以使用面向对象的方式来操作数据库,而无需直接编写SQL语句。在Hibernate ...

    hibernate 3.2 中文文档 api 官方的

    Hibernate 3.2 是一款强大的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的方式处理数据库操作,极大地简化了数据访问层的代码。这个中文文档API是官方提供的,确保了信息的准确性和权威性,对于学习和...

    Hibernate3.2 中文文档.

    这个中文文档是Hibernate 3.2英文版的翻译,旨在帮助中国开发者更好地理解和运用Hibernate框架。 首先,我们需要了解Hibernate的核心概念。ORM是一种技术,它允许我们在面向对象的编程环境中操作数据库,而无需直接...

    Hibernate3.2官方中文参考手册.rar

    《Hibernate3.2官方中文参考手册》是Java开发者不可或缺的一份资源,它全面而深入地介绍了Hibernate 3.2版本的特性和用法。Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发人员使用面向对象的编程模型来...

    Hibernate3.2.zip

    5. **Association Mapping**:Hibernate 支持多种关联映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)、多对多(ManyToMany)。这些映射方式允许对象之间的复杂关系在数据库中得以体现。 6....

    hibernate3.2级联关系自身一对多双向关联

    在Hibernate 3.2版本中,级联关系是处理对象间关联的重要特性,特别是自身一对多双向关联,这允许一个实体类实例与多个相同类型的其他实例相关联,而且这种关联是双向的。现在,让我们深入探讨这个主题。 首先,...

    Hibernate3.2中文参考文档

    在本"Hibernate3.2中文参考文档"中,我们将深入探讨该版本的核心特性和使用方法。 一、Hibernate概述 Hibernate是一个开源的ORM框架,它的主要功能是将Java对象模型与关系型数据库进行映射,实现了对象的持久化。在...

    hibernate3.2的级联关系_JavaProject

    本项目“hibernate3.2的级联关系_JavaProject”旨在帮助初学者理解并实践Hibernate 3.2中的级联关系,包括一对多、一对一和多对多这三种主要的关系类型。 首先,让我们深入了解一下级联关系。级联关系在Hibernate中...

    Hibernate3.2帮助文档.chm格式

    《Hibernate3.2帮助文档》是开发者们学习和掌握Hibernate框架的重要参考资料,它以CHM(Compiled Help Manual)格式提供,这种格式便于离线查阅和快速检索。文档详细阐述了Hibernate3.2版本的各项功能、配置以及使用...

    Hibernate3.2.chm

    《Hibernate 3.2 编译帮助手册》是关于Hibernate框架的一个详尽指南,它以已编译的CHM(Compiled Help Manual)格式提供,便于用户快速查询和学习。Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者...

    《Hibernate3.2 参考手册》

    《Hibernate3.2 参考手册》是Java开发领域中一本重要的技术文档,它详尽地阐述了Hibernate 3.2版本的相关知识。Hibernate是一个开放源代码的对象关系映射(ORM)框架,它极大地简化了Java开发者在数据库操作中的工作...

    hibernate对象三状态及OneToOne&OneToMany&ManyToMany

    本篇将详细阐述Hibernate中的对象三状态、一对一(OneToOne)、一对多(OneToMany)以及多对多(ManyToMany)关系映射。 一、Hibernate对象三状态 1. 游离态(Detached):对象在应用程序中创建,但尚未与Session...

Global site tag (gtag.js) - Google Analytics