EJB3.0里的@SecondaryTable 可以将一个 entity bean 对应数据库里的多张表,
下面的代码是仿照javaee doc 上写的,测试通过。
数据表图:
@SuppressWarnings("serial")
@Entity
@Table(name="part")
@SecondaryTable(
name="partdetail",
pkJoinColumns={
@PrimaryKeyJoinColumn(name="partnumber",referencedColumnName="partnumber"),
@PrimaryKeyJoinColumn(name="revision",referencedColumnName="revision")
}
)
@IdClass(PartKey.class)
public class Part implements Serializable {
private String partNumber;
private Integer revision;
private String partDescription;
private Date revisionDate;
private Part bomPart;
private List<Part> parts;
private Serializable drawing;
private String specification;
@Column(table="partdetail")
@Lob
public Serializable getDrawing() {
return drawing;
}
public void setDrawing(Serializable drawing) {
this.drawing = drawing;
}
@Column(table="partdetail")
@Lob
public String getSpecification() {
return specification;
}
public void setSpecification(String specification) {
this.specification = specification;
}
@Id
@Column(name="partnumber",nullable=false)
public String getPartNumber() {
return partNumber;
}
public void setPartNumber(String partNumber) {
this.partNumber = partNumber;
}
@Id
@Column(name="revision",nullable=false)
public Integer getRevision() {
return revision;
}
public void setRevision(Integer revision) {
this.revision = revision;
}
@Column(name="partdescription")
public String getPartDescription() {
return partDescription;
}
public void setPartDescription(String partDescription) {
this.partDescription = partDescription;
}
@Temporal(TemporalType.DATE)
public Date getRevisionDate() {
return revisionDate;
}
public void setRevisionDate(Date revisionDate) {
this.revisionDate = revisionDate;
}
@ManyToOne
@JoinColumns({
@JoinColumn(name="bompartnumber",referencedColumnName="partnumber"),
@JoinColumn(name="bomrevision",referencedColumnName="revision")
})
public Part getBomPart() {
return bomPart;
}
public void setBomPart(Part bomPart) {
this.bomPart = bomPart;
}
@OneToMany(mappedBy="bomPart",cascade=CascadeType.ALL)
public List<Part> getParts() {
return parts;
}
public void setParts(List<Part> parts) {
this.parts = parts;
}
}
其中:
@SecondaryTable(
name="partdetail",//表示从表名
pkJoinColumns={// 从表到主表的主键映射
@PrimaryKeyJoinColumn(name="partnumber",referencedColumnName="partnumber"),
@PrimaryKeyJoinColumn(name="revision",referencedColumnName="revision")
// 其中:name为从表字段,referencedColumnName为主表字段
}
)
还有映射字段时注意加上表名:
@Column(table="partdetail")
@Lob
public Serializable getDrawing() {
return drawing;
}
@Column(table="partdetail")
@Lob
public String getSpecification() {
return specification;
}
分享到:
相关推荐
Java Persistence Query Language(JPQL)是EJB 3.0中的一种面向对象的查询语言,类似于SQL,但操作的是对象而不是数据库记录。通过JPQL,开发者可以方便地进行复杂的数据查询,如`SELECT e FROM Employee e WHERE ...
在这个"ejb3.0开发实例(java工程)"中,我们将深入探讨EJB 3.0的主要特性和开发实践。 1. **注解驱动**:EJB 3.0最大的变革之一就是大量使用注解(Annotation),减少了XML配置文件的使用。例如,@Stateless、@...
《EJB3.0入门经典》是关于EJB 3.0的专业技术教程,从实用的角度出发,理论联系实际,用9章的篇幅详细讲解了EJB 3.0开发的方法和技巧。《EJB3.0入门经典》内容丰富,讲解由浅入深,全面系统,在讲解EJB 3.0最新开发...
《精通EJB3.0》是一本深入探讨企业级JavaBeans(EJB)3.0技术的专业书籍,由Rima Patel、Sriganesh、Gerald Brose和Micah Silverman共同编写,由Wiley Publishing出版。该书为读者提供了全面且深入的EJB3.0知识体系...
首先,我们来看《EJB3.0开发Entity.pdf》。在EJB 3.0中,Entity Bean代表持久化对象,它存储在数据库中并与数据库进行交互。这个部分将介绍如何定义实体bean,包括使用JPA(Java Persistence API)来注解实体类,...
"李腾飞EJB3.0 源码 源代码"可能包含的是李腾飞教授或团队关于EJB 3.0技术的实践示例或教学资源。通过分析这些源码,开发者可以深入理解EJB 3.0的实现细节,例如如何使用注解定义Bean、如何处理持久化、如何进行依赖...
### Java之精通EJB3.0 #### 一、EJB3.0简介与改进 企业Java Beans(Enterprise JavaBeans,简称EJB)是Java平台为企业级应用开发提供的一种组件模型。EJB3.0是EJB规范的一个重大版本更新,它在EJB2.0的基础上进行...
**企业级JavaBeans(EJB)3.0详解** 企业级JavaBeans(Enterprise JavaBeans,简称EJB)是Java平台上用于构建分布式企业级应用的重要组件模型。EJB 3.0是EJB规范的一个重大革新,它极大地简化了EJB的开发过程,引入...
在"**EJB3.0+JBOSS+MyEclipse初体验(完整代码和过程).txt**"文件中,你将找到一个完整的示例,涵盖了上述所有步骤,包括具体的代码片段和执行过程,这对于初学者来说是一个很好的起点,可以快速理解并实践EJB 3.0在...
压缩包中的文件如“ejb-3_0-fr-spec-persistence.pdf”、“ejb-3_0-fr-spec-simplified.pdf”和“ejb-3_0-fr-spec-ejbcore.pdf”可能是EJB 3.0官方规范的文档,分别详细阐述了持久化、简化的规范和核心EJB 3.0的内容...
在"ejb3.0入门经典教程-source"这个压缩包中,包含了书中各个章节的示例代码,覆盖了EJB 3.0的各个方面,例如实体Bean的创建、会话Bean的使用、事务管理、安全性设置以及JPA的持久化操作等。这些源码对于初学者来说...
EJB3.0是EJB规范的一个重要版本,它在EJB2.x的基础上进行了大量简化,提高了开发效率,并引入了注解驱动的开发方式,使得EJB更易于理解和使用。 在EJB3.0中,主要包含以下关键知识点: 1. **实体Bean(Entity ...
### EJB2.0与EJB3.0的主要区别 #### 一、简介 企业Java Beans(EJB)是Java平台为企业级应用提供的一种组件模型。随着技术的发展,EJB经历了多个版本的迭代,其中EJB 2.0和EJB 3.0是两个重要的里程碑版本。本文将...
**EJB3.0实例教程**是一份详细指导开发者如何使用Enterprise JavaBeans 3.0(EJB3.0)技术进行企业级应用开发的电子文档。EJB3.0是Java EE(Java Platform, Enterprise Edition)规范的一部分,旨在简化企业级组件的...
罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...
7. **查询语言(Query Language)**:Java Persistence Query Language (JPQL) 是EJB 3.0中用于检索和操作数据库的语句,类似于SQL,但操作的是对象而非记录。 8. **生命周期方法(Lifecycle Callbacks)**:开发者可以...
罗时飞精通EJB3.0.zip.001 罗时飞精通EJB3.0.zip.002 罗时飞精通EJB3.0.zip.003 《精通EJB3.0》共分为4个部分:第一部分对EJB编程基础进行介绍,概要性地对EJB进行了阐述;第二部分重点关注EJB编程的具体内容和...
EJB(Enterprise JavaBeans)3.0规范是Java EE(Enterprise Edition)平台中核心的组件模型,用于构建可扩展、安全且易于管理的企业级应用程序。EJB 3.0是EJB规范的一个重要里程碑,因为它引入了许多重大的改进,...
5. **实体Bean(Entity Beans)**:EJB3.0中的实体Bean主要基于JPA,使用`@Entity`注解标识,允许开发者直接操作数据库记录。实体Bean可以通过`@GeneratedValue`注解来自动分配主键。 6. **容器管理的事务...
**电子书-EJB3.0实例教程** EJB(Enterprise JavaBeans)是Java平台企业版(Java EE)的一部分,主要用于构建可复用的、模块化的、面向服务的企业级应用程序。EJB 3.0是其重要的一个版本,它在EJB 2.x的基础上进行...