- 浏览: 141079 次
- 性别:
- 来自: 南宁
文章分类
- 全部博客 (137)
- J2SE API基础 (19)
- JAVA Structure/Algorithm (1)
- 设计模式及UML(pd/rose) (11)
- SSH (32)
- JPA/EJB/JSF (0)
- Jsp/Servlet (1)
- XML (0)
- DWR/Dojo/JQuery(Ajax) (1)
- Js/css/HTML (3)
- Java报表开发 (0)
- 网络协议及认证加密算法 (2)
- Java多线程网络编程 (1)
- Lucence (0)
- Oracle Developer (5)
- Oracle DBA (3)
- mysql/SQLServer/DB2 (5)
- Weblogic配置/调试 (0)
- Tomcat/JBoss/Websphere (10)
- Linux/Unix操作部署及shell编程 (9)
- C/C++编程 (4)
- 系统分析 (0)
- 项目管理(CVS&风险控制) (0)
- JUnit单元和J2EE集成测试 (2)
- 软设/招聘 (6)
- IT English (8)
- Mathematics/Data Mining (1)
- Android开发爱好 (1)
- Flash制作爱好 (0)
- Professional wisdom (4)
- 序言 (1)
- 聊天记录 (0)
- 理想 (3)
- 承诺 (0)
- oifuslfjsldkj_chatrecord (1)
最新评论
-
blues1021:
dafeiwudi 写道什么叫外频和陪频啊?一般电脑都显示主频 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系 -
dafeiwudi:
什么叫外频和陪频啊?一般电脑都显示主频,它不表示运算速递,我们 ...
计算机组成原理和结构-时钟周期、机器周期、总线周期、指令周期含义和关系
复合主键也可以采用嵌入式主键替代,例如将上一小节中复合主键修改成嵌入式主键的步骤如下:
( 1 )编写一个嵌入式主键的类 CustomerPK ,代码如下。
import java.io.Serializable;
@Embeddable
public class CustomerPK implements Serializable {
public CustomerPK() {}
public CustomerPK(String name, String email) {
this.name = name;
this.email = email;
}
/** 其他代码与上一小节中相同 */
}
作为嵌入式主键类,要满足以下几点要求。
l 必须实现 Serializable 接口、必须有默认的 public 无参数的构造方法、必须覆盖 equals 和 hashCode 方法,这些要求与使用复合主键的要求相同。
l 将嵌入式主键类使用 @Embeddable 标注,表示这个是一个嵌入式类。
( 2 )通过 @EmbeddedId 注释标注实体中的嵌入式主键,实体代码如下。
@Entity
@Table(name = "customer")
public class CustomerEO implements java.io.Serializable {
public CustomerEO() {
}
public CustomerEO( String name, String email) {
this.id = new CustomerPK(name,email);
}
/** 嵌入式主键 */
@EmbeddedId
private CustomerPK id ;
private String name;
/** 客户名称 */
@Column(name = "name")
public String getName() {
return this.id.getName();
}
public void setName(String name) {
this.id.setName(name) ;
}
private String email;
@Column(name = "email")
public String getEmail() {
return this.id.getEmail();
}
public void setEmail(String email) {
this.id.setEmail(email);
}
}
( 3 )这样定义实体的嵌入式主键后,通过以下代码便可以获得指定的实体对象。
public CustomerEO findCustomer( String name ,String email){
return (CustomerEO)
entityManager.createQuery("SELECT c FROM CustomerEO c WHERE c.id.name = ?1 AND e.id.email = ?2")
.setParameter(1, name)
.setParameter(2, email)
.getSingleResult();
}
发表评论
-
Unity3DHouse中成功删除信息
2011-08-10 01:12 813//在jsp页面传入的参数在Action类中调用deleteH ... -
hibernate3.0中实现修改数据记录
2011-08-10 01:11 6861.查询页面中传入参数: <a href=& ... -
Unity3DHouse4项目save(object1)到库问题的解决
2011-08-10 01:10 7071.添加时点击没有任何响应和提示,google了一遍有说是 ... -
Unity3DHouse4系统未解问题
2011-08-10 01:08 7971.struts1.2+spring 2.2+Hibern ... -
Struts表单提交的text String数据可以作为HQL中的Integer类型处理
2011-08-10 01:06 8741.传入数据的表单中的声明 :<form metho ... -
6月28日房产的登录模块报错
2011-08-10 01:04 8251.JSP语法报错 exception org.ap ... -
struts的jsp Action中传入EL表达式参数及myeclipse操作技巧(涛)
2011-08-10 01:03 8781.<a href="/searchBuild ... -
Struts标签之Cannot find bean under name org.apache.struts.taglib.html.BEAN错误
2011-08-10 01:02 1292Cannot find bean under name ... -
【转】关于在HQL中的模糊查询问题
2011-08-10 01:02 778来自:20 ... -
Struts中的Action二次请求不认路径../的解决方法
2011-08-10 01:00 844地址栏没有了项目名称:http://localhost:808 ... -
myEclipse项目部署问题之解决方法
2011-08-10 00:58 1009myeclipse下工程: 1.安装myclipse时6.5 ... -
Strut2的属性驱动,模型驱动的理解
2011-08-10 00:58 1077因为在struts1的版本中,属性的拦截以及控制的处 ... -
Hibernate注释中的参照完整性和复合主键类解析
2011-08-10 00:57 1041在引入了或声明了相关表或类后就能够使用它下面的方法,例如: ... -
Spring 2.*有注释的配置文件中各层配置详解
2011-08-10 00:55 853<?xml version="1.0" ... -
Spring 2.5注释程序执行过程和融合xml使用
2011-08-10 00:54 828Spring2.5注释 一、加载Spirng容器,在web. ... -
【转】Struts2注解使用解析
2011-08-10 00:54 807如果希望使用 struts2 ... -
《转》struts.xml 模块化管理
2011-08-10 00:52 817... -
《转改》Struts2和Spring的集成原理
2011-08-10 00:50 6882009年09月02日 星期三 下午 ... -
房产销售系统的服务器配置问题?
2011-08-10 00:48 704Tomcat在外面的安装时抛出404找不到资源,测试后 ... -
《学生选课系统课程设计》提交过程的感悟
2011-08-10 00:46 766今天去提交数据库课程设计,昨晚把数据库安装了一晚JDK,m ...
相关推荐
`@Embeddable`注解用于定义一个包含复合主键字段的类,而`@EmbeddedId`注解则用在实体类上,指定这个复合主键类。 以下是一个简单的示例: 1. **复合主键类(Composite Key Class)** ```java import javax....
这篇文档将介绍如何使用Hibernate注解来生成复合主键或嵌入式主键。 复合主键(Composite Key)是指由两个或更多个列共同构成的唯一标识,而嵌入式主键(Embedded Key)则是将主键字段嵌入到实体类内部。在不使用...
`@Embeddable`用于定义一个复合主键类,而`@EmbeddedId`则是在实体类中声明这个复合主键。 1. 定义复合主键类 首先,创建一个表示复合主键的类,通常会包含所有主键字段,并使用`@Embeddable`注解: ```java ...
在Hibernate中,我们可以通过实现`Serializable`接口并使用`@Embeddable`和`@EmbeddedId`注解来定义和管理复合主键。 首先,我们需要创建一个代表复合主键的类。例如,对于订单明细表,我们可以创建一个名为`...
《Hibernate复合主键配置与使用详解》 在Java开发中,Hibernate作为一款强大的ORM框架,大大简化了数据库操作。然而,当我们面临复杂的数据表结构,尤其是涉及到复合主键时,如何在Hibernate中进行配置和使用就显得...
但是,此时在主类中,我们将这个联合主键类的引用注解为`@EmbeddedId`,而不是`@Id`。这表示联合主键类作为一个整体被嵌入到主类中,而不是作为独立的字段。 3. **使用`@IdClass`** 这种方式下,联合主键的每个...
总结来说,Hibernate通过`@IdClass`和`@EmbeddedId`两种方式提供了对复合主键的支持。理解和熟练掌握这些概念,可以帮助开发者更好地处理复杂的数据模型,提高代码的可维护性和灵活性。在实际项目中,选择合适的复合...
在Hibernate中,我们可以使用`@Embeddable`和`@EmbeddedId`注解来定义和使用联合主键。 1. **创建联合主键类:** 在MyEclipse中,我们首先创建一个Java类来表示联合主键。这个类需要被标记为`@Embeddable`,并包含...
首先,创建一个嵌入式主键类,标记为`@Embeddable`: ```java @Embeddable public class CompositeKey { @Id private String field1; @Id private int field2; } ``` 接着,在实体类中使用`@EmbeddedId`: ```...
在这个例子中,`StudentCourseKey`是一个嵌入式类,它的实例作为`Enrollment`实体的主键。 在JPA中,处理联合主键需要注意以下几点: - 联合主键的类必须实现Serializable接口,因为所有主键都必须是可序列化的。 ...
在Hibernate中,通过定义`@Embeddable`的复合主键类和`@EmbeddedId`的实体类,我们可以方便地管理和操作这些复合主键的实体。在保存和查询时,需注意正确设置复合主键的值,以确保数据的正确性。希望这个实例能帮助...
在本例中,我们将通过一个简单的复合主键的做关联类的例子来说明 Hibernate 复合主键的使用。 复合主键的定义 在 Java 中,复合主键类需要实现 equals 方法和 Serializable 接口。例如,RecordId 类就是一个复合...
`@IdClass`是将主键类作为单独的实体,而`@EmbeddedId`则是将主键字段嵌入到实体类中。 1. **使用@IdClass** 使用`@IdClass`时,你需要创建一个独立的类来表示联合主键,这个类需要包含所有主键字段,并且每个字段...
**JPA联合主键详解** 在Java Persistence API (JPA) 中,主键是用于唯一标识实体的关键字段。在很多情况下,一个实体的主键可能不是由单一字段组成,而是由两个或更多个字段共同构成,这样的主键就被称为联合主键...
2. **@EmbeddedId**:这种方式将联合主键作为一个嵌入式对象(Embedded Object)处理,直接在实体类内部定义主键类,每个字段同样使用@Id注解。 ### 二、使用@EmbeddedId 实现联合主键 假设我们有一个`Order`实体...
在Hibernate中,注解是用于替代传统的XML配置文件,以元数据的形式标注在类、属性或者方法上,实现对象与数据库表之间的映射。本文将深入探讨Hibernate中的注解,帮助你更好地理解和应用它们。 1. **实体注解(@...
**JPA 联合主键详解** 在Java Persistence API(JPA)中,主键是用于唯一标识实体的关键字段。通常,一个实体可能只有一个主键字段,但有些情况下,为了实现唯一标识,可能需要使用两个或多个字段的组合,这就是...
在Hibernate中,实现联合主键可以通过使用`@Embeddable`和`@EmbeddedId`注解。首先,我们需要创建一个包含所有主键字段的类,并使用`@Embeddable`标记。这个类通常会作为其他实体类的属性,用`@EmbeddedId`注解。...
`@EmbeddedId`注解用于声明一个类作为主键,而`@Embeddable`注解用于定义主键类。联合主键意味着多个字段共同构成主键,这样可以提供更为复杂和灵活的主键策略。 以下是一个示例,假设我们有两个实体,一个是`...