- 浏览: 1320089 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (896)
- spring4 (14)
- hibernate3 (26)
- spring2 (35)
- struts2 (55)
- struts1 (15)
- 设计模式 (15)
- java (172)
- mybatis3 (11)
- sql (17)
- mysql (13)
- jbpm (10)
- J2EE (45)
- tools (29)
- js (83)
- 数据结构 (13)
- Html (26)
- web (22)
- flex (33)
- Oracle (57)
- linux (49)
- 算法 (6)
- 其它 (12)
- easyui (1)
- bootstrap (13)
- xml (2)
- tomcat (1)
- redis (10)
- activemq (2)
- webservice (11)
- maven (2)
- springboot (1)
- ubuntu (1)
- python (14)
- rocketmq (1)
- springcloud (10)
- opencv (1)
最新评论
-
mike_eclipse:
Hashtable是线程不安全的吗?好像是线程安全的吧?
多线程之集合类 -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
lodop打印控件 -
xingcxb:
经过测试,假的,依旧会出现中文乱码!!!!store方法里面采 ...
java 读写Properties文件,不会出现中文乱码 -
tiger20111989:
...
Spring注解方式管理事务 -
zw7534313:
...
js 文字上下滚动 无间断循环显示
实例二:(主键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 Search
2010-10-15 10:09 1403hibernate Search 使用过lucene的人都 ... -
org.hibernate.LazyInitializationException: could not initialize proxy - no Sessi
2010-09-10 15:57 20081.设置里 lazy = "false" ... -
Hibernate数据检索策略
2010-08-09 08:52 1215Hibernate数据检索策略: Hiberna ... -
Java、hibernate、sql类型对照
2010-08-09 08:48 1493基本值类型: Java基本类型、对应的Hibernate映射 ... -
Hibernate事务隔离级别
2010-08-09 08:46 6264Hibernate事务隔离级别: 隔离级别 ... -
Hibernate数据检索策略
2010-08-06 15:58 1339Hibernate数据检索策略:Hibernate的数据检索策 ... -
生成model类的serialVersionUID
2010-06-25 16:36 1118生成model类的serialVersionUID: 在命令 ... -
spring 与 hibernate Annotation配置(entry)
2010-06-13 16:53 2033(5)TCompanyInfo.java import ... -
Hibernate的复杂用法HibernateCallback
2010-06-13 09:00 1131HibernateTemplate还提供一种更加灵活的方式来操 ... -
hibernate3与spring2零配置
2010-06-11 15:19 1399ssh除了xml配置之外,还可以用标注式配置: (1)sp ... -
hibernate3 annotation 的实例 3 (one to many)
2010-03-24 15:19 2100http://bigcat.easymorse.com/?p= ... -
hibernate annotation spring
2010-03-24 08:35 1086http://2625962-163-com.iteye.co ... -
hibernate3 annotation的实例
2010-03-23 14:55 1990实例一:一个对象的增删改查: import java. ... -
query specified join fetching, but the owner of the fetched association
2010-03-04 09:57 1964错误原因分析: 首先看HQL语句: ... -
illegal attempt to dereference collection
2010-03-04 09:12 3697首先说一句:是版本的问题! 我写的hql为: from D ... -
深化学习hibernate
2010-01-29 14:10 11213.4.5. 查询语言中 ... -
查询hibernate 部分数据
2010-01-29 10:56 1396hibernate查出来人部分数据基本上是数组,有的时候需要对 ... -
解决hibernate中的lazy的问题
2010-01-28 11:38 1409<many-to-one name="TCu ... -
hibernate 批量添加
2009-12-29 13:37 2059public void createRolePermissio ... -
hibernate 常见错误
2009-12-24 12:52 9621.org.hibernate.LazyInitializat ...
相关推荐
《Hibernate注解与Hibernate3深度解析》 在Java开发领域,Hibernate作为一种强大的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇将深入探讨Hibernate 3版本中的注解使用,帮助开发者理解如何利用注解进行...
3. **Hibernate Annotation**: Hibernate的注解是在Java类和属性上添加元数据的方式,它替代了传统的Hibernate XML配置文件。通过注解,可以在实体类和属性上直接定义数据库映射,如@Entity表示一个数据库表,@Table...
在Hibernate 3.x版本中,引入了Annotation注解,这是一种元数据的方式,可以替代XML配置文件来描述对象与数据库表之间的映射关系。 **Hibernate Annotation注解** 在Hibernate 3.x之前,对象到数据库的映射通常...
里面整合的是springMVC+hibernate3的配置文件和实例,用的是mysql数据库,使用注解annotation,下载后,只需修改jdbc.properties配置文件和加载对应的数据库驱动jar包就可以运行。亲测通过,有问题可以交流。
通过编写简单的HelloWorld程序,引入Hibernate和Annotation,创建第一个数据库操作实例,了解基本的Session和Transaction使用。 ### 第 7 课 建立 Annotation 版本的 HelloWorld 在此阶段,将HelloWorld示例转换为...
2. Hibernate 3.3:这是Hibernate的一个稳定版本,发布于2009年,引入了许多改进和新特性。在这个版本中,Hibernate开始支持Java 5的注解,这对于简化配置和提高代码可读性起到了关键作用。 3. Hibernate 注解:...
JSF+Spring+Hibernate(Annotation)的login小实例,建议入门的朋友看看,老鸟就免了,呵呵。环境:SQLSever2000+jdk5.0+spring2.0+hibernate3.2+jsf
超级详细的SSH2项目实例详解,并且附带两个项目详解。两种注解实现方式。不同的生成数据脚本实现。 在JavaEE企业级开发中,以SSH2框架为核心的应用非常广,大象根据项目实践经验,通过二个实例,详细的为大家讲解...
《Hibernate Annotation 中文版详解》 Hibernate 是一个广泛使用的开源对象关系映射(ORM)框架,它极大地简化了Java应用程序对数据库的操作。而Hibernate Annotation则是Hibernate框架中的一个重要组成部分,它...
**Hibernate Annotation 入门** Hibernate 是一款非常流行的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的方式操作数据库。而Hibernate Annotation是Hibernate的一个重要特性,它通过在Java类和字段上...
2. EJB3规范:Hibernate Annotation遵循了EJB3的部分规范,并结合了自身的一些特性。EJB3的注解使得Java EE应用程序的开发更为简单,减少了对XML的依赖。 3. 更深入的学习:要深入了解Hibernate Annotation,可以...
3. 注解(Annotation)在Hibernate中的应用: - @Entity:标记一个Java类为数据库中的一个表,表示该类是实体类。 - @Table:指定实体类对应的数据库表名。 - @Id:标识类中的主键字段,可以配合@GeneratedValue...
文件Spring_3300_Registration_11可能是一个示例项目,包含了上述整合的实例,包括Action、Service、DAO、配置文件等,开发者可以通过学习和运行这个项目来理解和实践Struts2、Hibernate3、Spring2.5的整合以及注解...
3. Hibernate Annotation是Hibernate的一部分,使用Java注解实现对象持久化,减少了XML配置。 4. @Entity、@Table、@Id和@GeneratedValue是常见的Hibernate Annotation,用于定义实体类和表的关系、主键规则等。 5. ...
在这个“Hibernate的Annotation版Hello world实例”中,我们将探讨如何利用Hibernate的注解(Annotation)功能来简化实体类的配置,并实现一个基本的数据操作。 首先,Hibernate注解是自Hibernate 3.2版本开始引入...
本教程将深入探讨如何在Hibernate中使用注解(Annotation)进行配置,从而避免传统的XML配置文件。通过这种方式,我们可以更直观地将数据库表与Java实体类关联起来。 首先,让我们理解什么是Hibernate注解。...
2. **Eclipse集成**:在Eclipse中,我们需要安装Hibernate插件以便更好地支持Hibernate相关的开发工作,例如代码补全、错误检查等。同时,还需要配置项目的构建路径以包含Hibernate库。 3. **数据库连接配置**:在...