`
lovepoem
  • 浏览: 17303 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate 3.5.6 annotation 双向一对多的配法

    博客分类:
  • java
阅读更多
今天用hibernate 3.5.6 annotation 双向一对多时候出现了异常,Invocation of init method failed; nested exception is java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemova()Z

上网一查发现是ejb3-persistence.jar的问题,解决方法是去掉ejb3-persistence.jar,使用hibernate-jpa-2.0-api-1.0.0.Final.jar

现贴出我自己的配法


一方(课程库):Course.class

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

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.GenericGenerator;

import com.zhjy.core.domain.StringIdObject;

@SuppressWarnings("serial")
@Entity
@Table(name = "COURSE")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Course {

	@Id
	@GeneratedValue(generator = "system-uuid")
	@GenericGenerator(name = "system-uuid", strategy = "uuid")
	@Column(length = 32)
	protected String id; // hibernate的uuid机制,生成32为字符串

 
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}
	
	/**
	 * 课程编码
	 */
	@Column(name = "COURSE_CODE", length = 50)
	private String courseCode;

	/**
	 * 课程主题
	 */
	@Column(name = "COURSE_TOPIC", length = 500)
	private String courseTopic;
	/**
	 * 创建时间
	 */
	@Column(name = "CREATED_DATE", length = 500)
	private Date createdDate;
	/**
	 * 创建部门
	 */
	@Column(name = "CREATED_DEPT", length = 500)
	private String createdDept;

	/**
	 * 课程简介
	 */
	@Column(name = "COURSE_DESCRIPTION", length = 500)
	private String courseDescription;
	/**
	 * fetch = FetchType.EAGER 相当于lazy="false"
	 */
	@OneToMany(mappedBy="course", targetEntity=CourseManager.class,fetch = FetchType.EAGER)
	
	private Set<CourseManager> courseManagers=new HashSet<CourseManager>();
	
	public String getCourseCode() {
		return courseCode;
	}

	public void setCourseCode(String courseCode) {
		this.courseCode = courseCode;
	}

	public String getCourseTopic() {
		return courseTopic;
	}

	public void setCourseTopic(String courseTopic) {
		this.courseTopic = courseTopic;
	}

	public Date getCreatedDate() {
		return createdDate;
	}

	public void setCreatedDate(Date createdDate) {
		this.createdDate = createdDate;
	}

	public String getCreatedDept() {
		return createdDept;
	}

	public void setCreatedDept(String createdDept) {
		this.createdDept = createdDept;
	}

	public String getCreatedDescription() {
		return courseDescription;
	}

	public void setCreatedDescription(String courseDescription) {
		this.courseDescription = courseDescription;
	}

	public String getCourseDescription() {
		return courseDescription;
	}

	public void setCourseDescription(String courseDescription) {
		this.courseDescription = courseDescription;
	}

	public Set<CourseManager> getCourseManagers() {
		return courseManagers;
	}

	public void setCourseManagers(Set<CourseManager> courseManagers) {
		this.courseManagers = courseManagers;
	}

}




多方(课程安排):CourseManager.class


 
import java.sql.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;
import org.hibernate.annotations.GenericGenerator;

import com.zhjy.core.domain.StringIdObject;

@SuppressWarnings("serial")
@Entity
@Table(name = "COURSE_MANAGER")
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class CourseManager {
	
	@Id
	@GeneratedValue(generator = "system-uuid")
	@GenericGenerator(name = "system-uuid", strategy = "uuid")
	@Column(length = 32)
	protected String id; // hibernate的uuid机制,生成32为字符串

 
	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	/**
	 * 课程编号
	 */
	@ManyToOne(fetch = FetchType.EAGER)
	private Course course;
 

	/**
	 * 开课时间
	 */
	@Column(name = "START_DATE", length = 50)
	private Date startDate;

	/**
	 * 报名人数
	 */

	@Column(name = "REGISTRATION_NUMBER", length = 50)
	private String registrationNumber;

	/**
	 * 实到人数
	 */
	@Column(name = "ACTUAL_NUMBER", length = 50)
	private String actualNumber;

	/**
	 * 发布时间
	 */
	@Column(name = "PUBLISH_DATE", length = 50)
	private Date publishDate;
	/**
	 * 填报部门
	 */
	@Column(name = "EDIT_DEPT", length = 50)
	private String editdept;

	public Course getCourse() {
		return course;
	}

	public void setCourse(Course course) {
		this.course = course;
	}

 

	public String getRegistrationNumber() {
		return registrationNumber;
	}

	public void setRegistrationNumber(String registrationNumber) {
		this.registrationNumber = registrationNumber;
	}

	public String getActualNumber() {
		return actualNumber;
	}

	public void setActualNumber(String actualNumber) {
		this.actualNumber = actualNumber;
	}

	public Date getPublishDate() {
		return publishDate;
	}

	public void setPublishDate(Date publishDate) {
		this.publishDate = publishDate;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public String getEditdept() {
		return editdept;
	}

	public void setEditdept(String editdept) {
		this.editdept = editdept;
	}

}



分享到:
评论

相关推荐

    hibernate-3.5.6 源码

    8. **关联映射**:Hibernate支持一对一、一对多、多对一、多对多等各种关联关系的映射,使对象模型能够准确反映数据库结构。 9. **继承映射**:在Java类的继承体系中,Hibernate可以处理单表继承、多表继承以及联合...

    hibernate3.5.6搭建环境必须包

    hibernate手动搭建环境必须包,antlr.jar commons-collection.jar dom4j.jar hibernate3.jar javassist.jar jta.jra slf4j.jar slf4j.jar slf4j-api.jar

    hibernate3.5.6最新

    最新的hibernate 3.5.6,只包含lib包和poject包

    hibernate3.5.6-final

    hibernate_百度百科 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。

    hibernate3.5.6.zip

    5. 支持更多数据库:Hibernate 3.5.6可能增加了对更多数据库系统的支持,包括MySQL、Oracle、PostgreSQL等,适应不同项目的数据库需求。 三、配置与使用 1. 配置文件:hibernate.cfg.xml是Hibernate的配置文件,...

    hibernate3.5.6开发包

    2. **Hibernate 3.5.6 版本**:这是Hibernate的一个稳定版本,发布于2010年,提供了许多改进和新特性,如更强大的查询语言HQL(Hibernate Query Language)、性能优化以及对JPA(Java Persistence API)的支持。...

    Hibernate 最新Jar包-3.5.6

    "Hibernate 最新Jar包-3.5.6" 提供的是Hibernate 3.5.6版本的库,这个版本在当时是一个稳定且功能丰富的版本,具有良好的社区支持。 在Hibernate 3.5.6中,包含的主要组件和功能有: 1. **Hibernate Core**:这是...

    hibernate3.5.6final.chm

    hibernate3.5.6final.chm 自己整理的 绝对好使

    Hibernate3.5.6中文+英文+日文的学习手册

    6. 关联映射:理解一对一、一对多、多对一、多对多等关联关系的映射,以及懒加载和立即加载的概念。 7. 缓存机制:了解第一级缓存和第二级缓存的工作原理,以及如何配置和使用它们提高性能。 8. 性能优化:探讨如何...

    hibernate-distribution-3.5.6-Final.rar

    3. 支持更多的数据库:除了常见的MySQL、Oracle等,Hibernate 3.5.6还支持更多数据库系统,包括PostgreSQL、SQL Server等,扩大了其应用范围。 4. 性能优化:此版本对缓存机制进行了优化,提高了查询效率,同时改进...

    hibernate_3.5.6_中文帮助文档(有目录)_Final.pdf

    映射定义包括了DOCTYPE声明、Hibernate-mapping元素、类映射、属性映射、标识符映射以及如何映射一对多、多对一、一对一、自然ID、组件和子类关系等。这部分内容是构建持久化类与数据库表之间的映射桥梁,是...

    struts2.1.18+hibernate3.5.6+spring3.0整合jar

    Struts2.1.18、Hibernate3.5.6和Spring3.0是Java开发中非常著名的三大开源框架,它们分别负责Web层、持久化层和应用上下文管理。这三个框架的整合,通常被称为"S2SH"或者"SSH2",在J2EE应用程序中被广泛使用,为...

    hibernate-distribution-3.5.6-Final.CHM

    hibernate-distribution-3.5.6-Final.CHM 从官网包中提取制作出API的CHM版本,不加任何东西,有需要的自己选择下载与否,不强求

    struts2.1.8+hibernate3.5.6+spring3.0整合jar2

    这个"struts2.1.8+hibernate3.5.6+spring3.0整合jar2"的压缩包可能是对上述整合过程的一个封装,包含了部分所需的jar文件。用户可能需要结合其他资源,如完整的配置文件和示例代码,才能完成整个框架的搭建和应用...

    struts2.1.8.1+spring2.5.6+hibernate3.5.6整合注解

    Struts2.1.8.1、Spring2.5.6和Hibernate3.5.6是经典的Java企业级开发框架组合,它们各自扮演着不同的角色,共同构建了一个强大的后端架构。Struts2是一个用于创建MVC(模型-视图-控制器)模式的Web应用程序的开源...

    struts22.0.18+hibernate3.5.6+spring3.0整合实例

    Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用对数据库的操作。它允许开发者用面向对象的方式来操作数据库,将Java对象与数据库表进行映射,从而避免了繁琐的SQL编写。Hibernate支持事务处理、缓存机制...

    hibernate_reference_3.5.6.pdf

    hibernate_reference_3.5.6.pdf hibernate_reference_3.5.6.pdf hibernate_reference_3.5.6.pdf

    Hibernate JavaDoc (3.5.6-Final) api chm

    Hibernate JavaDoc (3.5.6-Final) api chm

    hibernate-annotations-3.5.6-Final.jar

    hibernate-annotations-3.5.6-Final

Global site tag (gtag.js) - Google Analytics