`

hibernate3 annotation 的实例 2

阅读更多

实例二:(主键sequence策略)

 

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

import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

@Entity
public class Score {

 @Id
 @GeneratedValue(generator="seqs")
 @GenericGenerator(name="seqs",strategy="sequence",parameters={@Parameter(name="sequence",value="seq_score")})
 private Integer id;
 private String scoreName;
 private String author;
 
 
 public Integer getId() {
  return id;
 }
 
 public void setId(Integer id) {
  this.id = id;
 }
 public String getScoreName() {
  return scoreName;
 }
 public void setScoreName(String scoreName) {
  this.scoreName = scoreName;
 }
 public String getAuthor() {
  return author;
 }
 public void setAuthor(String author) {
  this.author = author;
 }
}

 

2.

使用 @OneToOne 注解可以建立实体bean之间的一对一的关联。
一对一关联有两种情况:
一是关联的实体都共享同样的主键,
二是其中一个实体通过外键关联到另一个实体的主键
(注意要模拟一对一关联必须在外键字段上添加唯一性约束).

@OneToOne

@OneToOne注释指明Person 与IDCard为一对一关系,@OneToOne注释五个属性:targetEntity、cascade、fetch、optional 和mappedBy, fetch属性默认值是FetchType.EAGER。optional = true设置 idcard属性可以为null,也就是允讦没有身份证,未成年人就是没有身份证的。 targetEntity属性:Class类型的属性。定义关系类的类型,默认是该成员属性对应的类类型,所以通常不需要提供定义。 cascade 属性:CascadeType[]类型。该属性定义类和类之间的级联关系。定义的级联关系将被容器视为对当前类对象及其关联类对象采取相同的操作, 而且这种关系是递归调用的。cascade的值只能从CascadeType.PERSIST(级联新建)、CascadeType.REMOVE(级联删除)、 CascadeType.REFRESH(级联刷新)、CascadeType.MERGE(级联更新)中选择一个或多个。还有一个选择是使用CascadeType.ALL,表示选择全部四项。 fetch属性:FetchType类型的属性。可选择项包括:FetchType.EAGER 和 FetchType.LAZY。 FetchType.EAGER 表示关系类(本例是OrderItem类)在主类加载的时候同时加载,FetchType.LAZY表示关系类在被访问时才加载。默认值是 FetchType.LAZY。 @OrderBy(value = "id ASC")注释指明加载元组时按id的升序排序(降序 "DESC") @OneToOne(optional = true, cascade = CascadeType.ALL, mappedBy = "person")

 

下面这个例子使用外键进行实体的关联。

@Entity
public class Customer implements Serializable {
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name="passport_fk")
public Passport getPassport() {
...
}

@Entity
public class Passport implements Serializable {
@OneToOne( mappedBy = "passport" )
public Customer getOwner() {
...
}

 

 

import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import org.hibernate.annotations.GenericGenerator;
import org.hibernate.annotations.Parameter;

@SuppressWarnings("serial")
@Entity
public class US implements Serializable {
 
 @Id
 @GeneratedValue(generator="seq")
 @GenericGenerator(name="seq",strategy="sequence",parameters={@Parameter(name="sequence",value="seq_us")})
 private Integer id;
 @OneToOne(cascade=CascadeType.ALL)
 @JoinColumn(name="userid")    //外键,userid references user2(id)
 private User2 user2;
 @OneToOne(cascade=CascadeType.ALL)
 @JoinColumn(name="scoreid")
 private Score score;
 private Integer grade;
 
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 public User2 getUser2() {
  return user2;
 }
 public void setUser2(User2 user2) {
  this.user2 = user2;
 }
 public Score getScore() {
  return score;
 }
 public void setScore(Score score) {
  this.score = score;
 }
 public Integer getGrade() {
  return grade;
 }
 public void setGrade(Integer grade) {
  this.grade = grade;
 }
}

分享到:
评论

相关推荐

    hibernate annotation hibernate3

    《Hibernate注解与Hibernate3深度解析》 在Java开发领域,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇将深入探讨Hibernate 3版本中的注解使用,帮助开发者理解如何利用注解进行...

    hibernate-annotation 所需要的jar包

    3. **Hibernate Annotation**: Hibernate的注解是在Java类和属性上添加元数据的方式,它替代了传统的Hibernate XML配置文件。通过注解,可以在实体类和属性上直接定义数据库映射,如@Entity表示一个数据库表,@Table...

    hibernate-Annotation.jar

    在Hibernate 3.x版本中,引入了Annotation注解,这是一种元数据的方式,可以替代XML配置文件来描述对象与数据库表之间的映射关系。 **Hibernate Annotation注解** 在Hibernate 3.x之前,对象到数据库的映射通常...

    springMVC+Hibernate3整合实例

    里面整合的是springMVC+hibernate3的配置文件和实例,用的是mysql数据库,使用注解annotation,下载后,只需修改jdbc.properties配置文件和加载对应的数据库驱动jar包就可以运行。亲测通过,有问题可以交流。

    Hibernate -annotation 学习笔记

    通过编写简单的HelloWorld程序,引入Hibernate和Annotation,创建第一个数据库操作实例,了解基本的Session和Transaction使用。 ### 第 7 课 建立 Annotation 版本的 HelloWorld 在此阶段,将HelloWorld示例转换为...

    hibernate annotation jar

    2. Hibernate 3.3:这是Hibernate的一个稳定版本,发布于2009年,引入了许多改进和新特性。在这个版本中,Hibernate开始支持Java 5的注解,这对于简化配置和提高代码可读性起到了关键作用。 3. Hibernate 注解:...

    JSF+Spring+Hibernate(Annotation)

    JSF+Spring+Hibernate(Annotation)的login小实例,建议入门的朋友看看,老鸟就免了,呵呵。环境:SQLSever2000+jdk5.0+spring2.0+hibernate3.2+jsf

    Struts2+Spring2.5+Hibernate3全注解实例详解

    超级详细的SSH2项目实例详解,并且附带两个项目详解。两种注解实现方式。不同的生成数据脚本实现。 在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大象根据项目实践经验,通过二个实例,详细的为大家讲解...

    hibernate_annotation中文版

    《Hibernate Annotation 中文版详解》 Hibernate 是一个广泛使用的开源对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。而Hibernate Annotation则是Hibernate框架中的一个重要组成部分,它...

    Hibernate Annotation入门

    **Hibernate Annotation 入门** Hibernate 是一款非常流行的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的方式操作数据库。而Hibernate Annotation是Hibernate的一个重要特性,它通过在Java类和字段上...

    Hibernate Annotation 学习笔记

    2. EJB3规范:Hibernate Annotation遵循了EJB3的部分规范,并结合了自身的一些特性。EJB3的注解使得Java EE应用程序的开发更为简单,减少了对XML的依赖。 3. 更深入的学习:要深入了解Hibernate Annotation,可以...

    hibernate 中文文档 and _annotation.chm

    3. 注解(Annotation)在Hibernate中的应用: - @Entity:标记一个Java类为数据库中的一个表,表示该类是实体类。 - @Table:指定实体类对应的数据库表名。 - @Id:标识类中的主键字段,可以配合@GeneratedValue...

    struts2 hibernate3 spring2.5 annotation 整合

    文件Spring_3300_Registration_11可能是一个示例项目,包含了上述整合的实例,包括Action、Service、DAO、配置文件等,开发者可以通过学习和运行这个项目来理解和实践Struts2、Hibernate3、Spring2.5的整合以及注解...

    hibernate中文APIhibernate annotation 中文API

    3. Hibernate Annotation是Hibernate的一部分,使用Java注解实现对象持久化,减少了XML配置。 4. @Entity、@Table、@Id和@GeneratedValue是常见的Hibernate Annotation,用于定义实体类和表的关系、主键规则等。 5. ...

    Hibernate的Annotation版Hello world实例

    在这个“Hibernate的Annotation版Hello world实例”中,我们将探讨如何利用Hibernate的注解(Annotation)功能来简化实体类的配置,并实现一个基本的数据操作。 首先,Hibernate注解是自Hibernate 3.2版本开始引入...

    hibernate中用annotation的demo

    本教程将深入探讨如何在Hibernate中使用注解(Annotation)进行配置,从而避免传统的XML配置文件。通过这种方式,我们可以更直观地将数据库表与Java实体类关联起来。 首先,让我们理解什么是Hibernate注解。...

    第一个Hibernate with Annotation程式(转)

    2. **Eclipse集成**:在Eclipse中,我们需要安装Hibernate插件以便更好地支持Hibernate相关的开发工作,例如代码补全、错误检查等。同时,还需要配置项目的构建路径以包含Hibernate库。 3. **数据库连接配置**:在...

Global site tag (gtag.js) - Google Analytics