本文为原创,如需转载,请注明作者和出处,谢谢! 一对一映射是很常用的。在一般情况下,一个主表通过外键和从表形成一对一的关系。在EJB3中使用@OneToOne注释来映射。一对一关系除了使用外键进行关联外,也可以采用共享主键的方式连接两个表。先看看如下两个表的结构:
图2 t_referees
t_customers和t_referees表形成了一对一的关系。t_customers表通过referee_id与t_referees表相连。与t_customers表对应的实体Bean的代码如下:
从上面的代码可以看出,getReferee方法使用了@OneToOne进行设置。在装载Customer对象的同时,Referee对象会被同时装 载,而默认的外键字段就是Customer类中的referee属性名 + "_" + id,也就是referee_id。下面看一下与t_referees表对应的实体Bean代码:
Referee类使用了customer属性映射了Customer对象,实际上,这是一个双向的one-to-one映射。这时,在Referee类的 customer属性的getter方法的@OneToOne注释中,需要使用mappedBy属性来指定主表(Customer)中的映射从表的属性名 (referee)。 我们可以使用下面的代码进行测试:
如果要覆盖默认的名键名,例如,外键名为referee1_id,可以两种方法使EJB3容器使用新的外键: 1. 修改Customer类中的referee属性的getter和setter方法为getReferee1和setReferee1,并将Referee类中mappedBy属性的值修改成referee1。 2. 使用@JoinColumn注释设置新的外键名,这种方法只需要修改Customer类的getReferee方法上面注释即可,代码如下:
one-to-one关系还可以共享主键,也就是一个表的主键的值依赖于另一个表的主键的值。因此,在这种情况下,就不再需要t_customers表中 的referee_id字段了。由于t_referees表的id字段值依赖于t_customers表的id字段值,因此,需要将t_referees 表中的id字段值的自增类型去掉。 在EJB3中使用@PrimaryKeyJoinColumn注释来实现主键的共享。首先需要修改Customer类的getReferee方法上方的注释,修改后的代码如下:
然后要修改Referee类中的getCustomer和getId方法上方的注释,修改后的代码如下:
其中@GenericGenerator注释表示这个id属性是外键,并且依赖于customer属性对应的实体Bean的id属性值(主键值)。 另外还要注意一点,由于t_referees表的id的自增类型已经去掉,而且该值依赖于t_customers表的id字段值,因此,就不能直接持久化Referee对象了,而在持久化Customer对象的同时,EJB3容器会自动将Referee持久化的。
您还没有登录,请您登录后再发表评论
使用Eclipse+Jboss+MySql开发EJB
eclipse + JBoss 5 + EJB3开发指南(转载整理)
[6] 使用 Eclipse 建立第一个 EJB3 Project [ 即 HelloWorld ]: 18 [7] 建立 HelloWorld Stateless Session Bean 及 Local, Remote interfaces: 19 [8] 建立客户端测试程序: 20 [9] 使用 ANT 建立 EJB-JAR 并...
eclipse + JBoss 5 + EJB3开发指南中的代码 下载PDF文档资料后可以和本资料一起学习
非常好的指导Eclipse下通过JBOSS开发EJB的入门指导书, 通过原作者的实际使用总结得到,简洁易懂。
Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置
使用eclipse通过jboss开发简单的ejb应用(jboss7.x & ejb3.x),包含server和client。
Eclipse+JBoss+MySQL开发环境设置.pdf
手把手系列-Eclipse+JBossIDE+JBoss开发环境配置
ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt
广东工业大学Java EE Web编程技术课程实验,使用JBoss,实现EJB技术中的会话Bean,简单的Helloworld。
yeclipse7.0+JBoss5.0测试EJB3.0环境搭建过程详解
EJB3+JBOSS5+JPA整合,里面还用到了ejb3注解。
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
myEclipse+Jboss+mysql+EJB
EJB3.0第五版电子书,开发环境是eclipse+jboss+mysql
《经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发》介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message Driven Bean的...
Jboss7.1.1+eclipse-kepler开发ejb3 使用eclipse4.3即kepler版本来集成jboss tools工具并使用jboss7.1.1来开发ejb3.1
ejb课程测试代码,eclipse+jboss5.1 ant编译等代码 三个测试项目请下载
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3
相关推荐
使用Eclipse+Jboss+MySql开发EJB
eclipse + JBoss 5 + EJB3开发指南(转载整理)
[6] 使用 Eclipse 建立第一个 EJB3 Project [ 即 HelloWorld ]: 18 [7] 建立 HelloWorld Stateless Session Bean 及 Local, Remote interfaces: 19 [8] 建立客户端测试程序: 20 [9] 使用 ANT 建立 EJB-JAR 并...
eclipse + JBoss 5 + EJB3开发指南中的代码 下载PDF文档资料后可以和本资料一起学习
非常好的指导Eclipse下通过JBOSS开发EJB的入门指导书, 通过原作者的实际使用总结得到,简洁易懂。
Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置
使用eclipse通过jboss开发简单的ejb应用(jboss7.x & ejb3.x),包含server和client。
Eclipse+JBoss+MySQL开发环境设置.pdf
手把手系列-Eclipse+JBossIDE+JBoss开发环境配置
ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt
广东工业大学Java EE Web编程技术课程实验,使用JBoss,实现EJB技术中的会话Bean,简单的Helloworld。
yeclipse7.0+JBoss5.0测试EJB3.0环境搭建过程详解
EJB3+JBOSS5+JPA整合,里面还用到了ejb3注解。
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
myEclipse+Jboss+mysql+EJB
EJB3.0第五版电子书,开发环境是eclipse+jboss+mysql
《经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发》介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message Driven Bean的...
Jboss7.1.1+eclipse-kepler开发ejb3 使用eclipse4.3即kepler版本来集成jboss tools工具并使用jboss7.1.1来开发ejb3.1
ejb课程测试代码,eclipse+jboss5.1 ant编译等代码 三个测试项目请下载
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3