- 浏览: 439364 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (211)
- 思考》感想 (11)
- 数据库操作 譬如Oracle大叔 (7)
- java,咱们有缘吗 (16)
- delphi,你还好吗 (2)
- SSH,哥三儿好 (31)
- 问题!问题?问题!? (9)
- WITH WORK (1)
- 算法与模式 莫事^_^ (10)
- JSP,可以叫你P兄么 (2)
- 啊,咋科斯╮(╯▽╰)╭ (6)
- 巨人肩上的小石子 (2)
- flash她妹flex (38)
- 项目管理 (10)
- 奥特曼,你弟Android来了 (4)
- 麻辣儿gis (0)
- maven 嘛味儿 (3)
- ws 哇塞 webservice (5)
- Oh,no!!!,NoSql (1)
- QQ他哥也是个企鹅,Linux (6)
- 姓i还是姓my 你都叫batis ibatis (3)
- 我喜欢夏天(春天旁边的那个季节)Springside (1)
- 测试! 测就测吧,没有喝(⊙o⊙) (3)
- 是晕+_+ 是浮云 还是云计算 (4)
- ExtJS 你是flex他哥还是他妹 (10)
- svg 你丫的资料真少 (3)
- 叫屁屁还是叫加加 ⊙﹏⊙ c++ (5)
- 鸟,还是只百灵鸟 BIRT (1)
- 权限管理 有权真好 是吧-_-! (1)
- SSH (2)
- 哥三儿好 (2)
- nginx (1)
- Oh (1)
- no!!! (1)
- NoSql (1)
最新评论
-
mong619226543:
谢谢
No identifier specified for entity -
akka_li:
没看懂啥意思!什么原因导致java.net.SocketExc ...
java.net.SocketException: Connection reset 问题解决方法 -
west_jing:
1L正解,<mvc:annotation-driven/ ...
<mvc:default-servlet-handler/> 导致 Controller失效 -
u010954806:
tgfhfdhdf
Spring Security 国际化文件 messages_zh_CN.properties 中文解释 -
yenshen:
我也碰到这个问题了,找了一大圈,最终问题解决了:<con ...
<mvc:default-servlet-handler/> 导致 Controller失效
public class User {
private int id;
private String name;
private String address;
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
}
在如上类中假设需要定义一个联合主键 id,name,在hibernate中利用注解映射方法有如下三种:
1、将组件类注解为@Embeddable,并将实体类中组件的注解为@Id
首先需要抽象出一个组件类,并将其注解为可嵌入式的Embeddedable在User中进行引用
@Embeddable
public class UserPk implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
其次要在实体类中将组件属性注解为@ID
@Entity
public class User {
private UserPk userPk;
private String address;
@Id
public UserPk getUserPk() {
return userPk;
}
public String getAddress() {
return address;
}
public void setUserPk(UserPk userPk) {
this.userPk = userPk;
}
public void setAddress(String address) {
this.address = address;
}
}
2、将组件的属性注解为@EmbeddedId
首先需要抽象出一个组件类,在User中进行引用
public class UserPk implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
其次需要在实体类中对组件属性注解为嵌入式的ID,即:@EmbeddedId
@Entity
public class User {
private UserPk userPk;
private String address;
@EmbeddedId
public UserPk getUserPk() {
return userPk;
}
public String getAddress() {
return address;
}
public void setUserPk(UserPk userPk) {
this.userPk = userPk;
}
public void setAddress(String address) {
this.address = address;
}
}
3、将类注解为@IdClass,并将该实体中所有属于主键属性都注解为@Id
抽象出组件类
public class UserPk implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
实体类
@Entity
@IdClass(value = UserPk.class)
public class User {
private int id;
private String name;
private String address;
@Id
public int getId() {
return id;
}
@Id
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kun20031029/archive/2010/08/18/5821583.aspx
private int id;
private String name;
private String address;
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
}
在如上类中假设需要定义一个联合主键 id,name,在hibernate中利用注解映射方法有如下三种:
1、将组件类注解为@Embeddable,并将实体类中组件的注解为@Id
首先需要抽象出一个组件类,并将其注解为可嵌入式的Embeddedable在User中进行引用
@Embeddable
public class UserPk implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
其次要在实体类中将组件属性注解为@ID
@Entity
public class User {
private UserPk userPk;
private String address;
@Id
public UserPk getUserPk() {
return userPk;
}
public String getAddress() {
return address;
}
public void setUserPk(UserPk userPk) {
this.userPk = userPk;
}
public void setAddress(String address) {
this.address = address;
}
}
2、将组件的属性注解为@EmbeddedId
首先需要抽象出一个组件类,在User中进行引用
public class UserPk implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
其次需要在实体类中对组件属性注解为嵌入式的ID,即:@EmbeddedId
@Entity
public class User {
private UserPk userPk;
private String address;
@EmbeddedId
public UserPk getUserPk() {
return userPk;
}
public String getAddress() {
return address;
}
public void setUserPk(UserPk userPk) {
this.userPk = userPk;
}
public void setAddress(String address) {
this.address = address;
}
}
3、将类注解为@IdClass,并将该实体中所有属于主键属性都注解为@Id
抽象出组件类
public class UserPk implements Serializable {
private static final long serialVersionUID = 1L;
private int id;
private String name;
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
}
实体类
@Entity
@IdClass(value = UserPk.class)
public class User {
private int id;
private String name;
private String address;
@Id
public int getId() {
return id;
}
@Id
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
public void setAddress(String address) {
this.address = address;
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/kun20031029/archive/2010/08/18/5821583.aspx
发表评论
-
Spring Security 国际化文件 messages_zh_CN.properties 中文解释
2011-05-04 17:08 7143Spring Security 国际化文件 messages_ ... -
两个Spring Security问题
2011-05-04 17:06 2111两个Spring Security问题 ---------》 ... -
一个spring security 配置列子
2011-05-03 16:48 1265<?xml version="1.0" ... -
spring security与数据库交互实现简单例子
2011-04-19 16:34 1684spring security与数据库交互实现简单例子 最近 ... -
用struts2 验证用户登录demo
2011-01-28 15:38 2184用struts2 验证用户登录de ... -
Struts2.1.8 执行顺序
2011-01-28 15:18 889public class LoginAction extend ... -
Struts2令人纠结的一个问题
2011-01-27 09:47 1014我用Struts2加入自定义的library如下图,就报错, ... -
一份spring配置文件
2011-01-13 14:05 987<?xml version="1.0" ... -
Hibernate关系映射总结
2010-10-18 10:35 1277其实这些东东完全可以参考帮助文档;这里只是总结下。 》》》一对 ... -
No identifier specified for entity:XX.xx
2010-10-12 17:25 1684No identifier specified for ent ... -
@MappedSuperclass的用法
2010-10-11 10:21 12667@MappedSuperclass的用法 用在实体的继承过程 ... -
公共dao的结构
2010-09-29 16:17 1382-----------》公共dao的结构 -----共用接口 ... -
No identifier specified for entity
2010-09-29 16:07 12024org.hibernate.AnnotationExcepti ... -
SSJ配置模板
2009-09-14 09:06 903web.xml-----> <?xml versi ... -
一个简单的ssh配置模板
2009-09-12 17:08 1730web.xml------> <?xml vers ... -
Struts----学习笔记 用form提交和sturts提交
2009-09-12 17:02 1234struts是这么配置的 <action path= ... -
Spring学习笔记------Spring和Hibernate的整合配置
2009-09-12 09:15 1424Spring和Hibernate整合配置有两种方式: 方 ... -
Spring学习笔记--------AOP操作
2009-09-10 10:29 1070* AOP操作可与通过注解和xml的方式实现; * 有个问题, ... -
Hibernate学习笔记1--------一个简单的应用
2009-08-30 08:26 1033工具类---------> /** *用单例模式 ... -
Hibernate学习笔记2--------------------一对多、多对一简单配置
2009-08-30 08:40 1021一的一端------------------------> ...
相关推荐
通过这种方式,你可以实现Hibernate中一对一单向外键关联及联合主键的配置。这使得两个实体间的关系更加明确,同时也方便了数据的管理和操作。在实际项目中,这样的设计可以提高数据的完整性和一致性。
Annotation 在 Hibernate 中扮演着关键角色,它们为数据库对象提供了元数据,使得无需XML配置就能实现数据持久化。本笔记将深入探讨Hibernate Annotation的相关知识点。 1. **实体类与@Entity** - `@Entity` 注解...
2. **主键定义**:每个实体通常都有一个主键,我们可以使用`@Id`注解来标记主键字段。默认情况下,Hibernate会使用`GenerationType.AUTO`策略生成主键,但也可以自定义生成策略,如`GenerationType.IDENTITY`或`...
在Hibernate中,Annotation是用于替代传统XML配置的一种方式,提供了更加直观、简洁的代码表示。本文将深入探讨Hibernate Annotation,帮助读者理解和掌握这一强大的工具。 一、Hibernate Annotation基础 1.1 ...
而Hibernate的注解版本,特别是3.2.1版本,更是其发展历程中的一个重要里程碑,它使得开发者能够通过在Java类和属性上添加注解,实现对数据库的映射,从而减少了XML配置文件的依赖。这篇文档将详细介绍Hibernate注解...
第1课 课程内容 6 第2课 Hibernate UML图 6 第3课 风格 7 第4课 资源 7 第5课 环境准备 7 ...三、 联合主键 24 1、xml方式 24 2、annotation方式 27 第14课 Hibernate核心开发接口(重点) 29 ........
在实体类中,我们需要定义主键字段,通常使用`@Id`注解。例如: ```java @Entity public class User { @Id private Long id; // ... } ``` `@GeneratedValue` 可以与`@Id`结合使用,自动管理主键的生成策略,如...
包括Hibernate核心库、JTA事务管理、JPA规范实现等,使用这些jar包,开发者可以轻松实现Java项目中的ORM功能,利用Hibernate的强大功能进行数据库操作,同时支持Annotation配置,简化了开发过程。
5.5.2. 使用 JDK 5.0 的注解(Annotation) 5.6. 数据库生成属性(Generated Properties) 5.7. 辅助数据库对象(Auxiliary Database Objects) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) ...
10. **一对多(One-to-Many)、多对一(Many-to-One)、多对多(Many-to-Many)关系映射**:这些映射关系在实际业务中很常见,Hibernate提供了灵活的配置方式来处理这些关联。 11. **继承映射**:Hibernate支持单表...
5. **@JoinTable**:在多对多关系中,用于定义中间表的详细信息,包括联合主键等。 ### 集合映射的加载策略 Hibernate提供了多种加载策略,例如: - **EAGER**:集合会在主对象加载时一起加载,适合小规模数据。 ...
- `@Inheritance`:定义继承策略,如SINGLE_TABLE(单表继承)、JOINED(联合继承)和TABLE_PER_CLASS(每类一张表)。 - `@JoinColumn`:用于指定外键列的名称和属性。 - `@Transient`:标记一个属性不映射到数据库...
第13课专注于ID主键的生成策略,包括Xml方式和AnnotateOn方式,如AUTO、IDENTITY、SEQUENCE、TABLE等策略,并讨论了联合主键的配置。 第14课是核心内容,介绍了Hibernate的主要开发接口,如`Configuration...
1. Hibernate Annotation 概述 Hibernate Annotations是Hibernate框架中的一种元数据表示方式,它允许开发者在Java实体类上直接添加注解,替代传统的XML配置文件来描述对象关系映射(ORM)。这种方式使得ORM配置更加...
- **字段映射**: @Id、@GeneratedValue、@Column等注解的使用,定义主键生成策略和字段属性。 - **关联映射**: @OneToOne、@OneToMany、@ManyToOne、@ManyToMany等,处理对象之间的关系。 **4. Session操作** - **...
最后,书中可能还会讨论一些高级主题,如Hibernate的联合映射(Association Mapping)、继承映射(Inheritance Mapping)、复合主键(Composite Key)以及自定义类型(Custom Types)。这些特性允许开发者构建更复杂...
- **联合主键关联(Annotation方式)**:两个对象通过联合主键进行关联。 - **Component(组件)关联映射** - **Component关联映射**:将一个对象的某些属性作为一个单独的对象进行处理。 - **User实体类**:表示...
例如,`@Entity`表示一个Java类对应数据库中的一个表,`@Id`标识主键,`@GeneratedValue`定义主键生成策略等。 3. **SessionFactory与Session**:在Hibernate中,SessionFactory是线程安全的,负责创建Session对象...
- **联合主键**:当一个实体的主键由多个字段组成时,可以通过XML或Annotation方式指定联合主键。 #### Hibernate核心开发接口 - **Configuration/AnnotationConfiguration**:负责读取配置文件,初始化...
1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. 架构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 3. 配置 ...