- 浏览: 704030 次
- 性别:
- 来自: 北京
博客专栏
-
读金庸故事,品程序人生
浏览量:47744
文章分类
最新评论
-
hty881008:
LZ,你的json返回是怎么出来的,我的怎么是No messa ...
使用CXF暴露您的REST服务 -
jxFY:
赞
Apache的对象池化工具commons-pool -
wangyudong:
新版本的Wisdom RESTClient地址https:// ...
使用CXF暴露您的REST服务 -
wangyudong:
由CXF实现的微服务需要有比较好的工具去测试RESTful A ...
使用CXF暴露您的REST服务 -
spring_springdata:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
Maven3实战笔记01环境配置与使用入门
1. 1 VS N 和N VS 1
说完了最复杂的多对多关系后,剩下的骨头就好啃了。我们就先来看一对多和多对一。
假设目前项目有这样一个需求:建立一个类似足球俱乐部转会的管理系统球员可以转会到其他的俱乐部,而俱乐部看队员不顺眼也可以开除队员,一个队员在一个时刻只能从属于一家俱乐部,一个俱乐部在一个时刻内可以有多个运动员。由此,我们不难得出以下模型。
多个动员从属于一个俱乐部管辖,而一个俱乐部下面可以有多个运动员。比如说一提到巴塞罗那,可以知道它有梅西、哈维、伊涅斯塔………………,一提到C罗可以知道他在皇家马德里踢球,一提到厄齐尔也知道他在皇家马德里。
由此我们得到了类图
PlayersVO(运动员)
说明:咱们暂且只关心TeamVO,看出运动员里面有俱乐部实体。 那咱们来看俱乐部类图 TeamVO(俱乐部)
俱乐部里面有Set<PlayersVO>,由此可以得出结论,运动员和俱乐部是双向1对多的关系,在运动员这边来看就是多对1(多个人员对应一个俱乐部嘛),从俱乐部这边来看就是1对多关系(1个俱乐部有多个运动员)。
下面是两个类的代码:
PlayersVO
package mangerTeam.vo;
import java.io.Serializable; import java.util.Set;
import javax.persistence.Basic; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.JoinTable; import javax.persistence.Lob; import javax.persistence.ManyToMany; import javax.persistence.ManyToOne; import javax.persistence.Table;
/** * 运动员实体 * * @author 刘岩 */ @Entity @Table(name = "player") public class PlayersVO implements Serializable {
@Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id", unique = true, nullable = false) private Integer id;
@Column(name = "name") private String name;
@ManyToOne(optional=true, fetch = FetchType.LAZY) @JoinColumn(name = "teamId") private TeamVO teamVO;
@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(nullable=false,name = "nationalityId") private NationalityVO nationalityVO;
@Lob @Basic(fetch = FetchType.LAZY) @Column(name = "pic") private byte[] pic;
@Lob @Basic(fetch = FetchType.LAZY) @Column(name = "mess") private String mess;
@ManyToMany(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY) @JoinTable(name = "plays_position", joinColumns = { @JoinColumn(name = "playerId") }, inverseJoinColumns = { @JoinColumn(name = "positionId") }) private Set<PositionVO> positions;
public Integer getId() { return id; }
public void setId(Integer id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Set<PositionVO> getPositions() { return positions; }
public void setPositions(Set<PositionVO> positions) { this.positions = positions; }
public TeamVO getTeamVO() { return teamVO; }
public void setTeamVO(TeamVO teamVO) { this.teamVO = teamVO; }
public NationalityVO getNationalityVO() { return nationalityVO; }
public void setNationalityVO(NationalityVO nationalityVO) { this.nationalityVO = nationalityVO; }
public byte[] getPic() { return pic; }
public void setPic(byte[] pic) { this.pic = pic; }
public String getMess() { return mess; }
public void setMess(String mess) { this.mess = mess; }
} |
在此我们和上面一样只理会如下片段
@ManyToOne(optional=true, fetch = FetchType.LAZY) @JoinColumn(name = "teamId") private TeamVO teamVO; |
说明:@ManyToOne声明和TeamVO是多对1关系,
Optional:是否允许该字段为null。(运动员可以没有俱乐部,原拜仁门将——伦辛曾失业半年多呢)。
fetch = FetchType.LAZY:抓取策略为懒加载。
发表评论
-
JavaEE5实战笔记05RedHat搭建JBoss、Oracle10g环境
2011-06-01 10:50 1596JavaEE5实战笔记在RedHat上搭建JBoss、Orac ... -
JavaEE5实战笔记02JPA持久层的一些问题
2011-05-30 14:48 16291. JPA关联实体的级联操作问题 在此次联系中 ... -
JavaEE5实战笔记01EJB环境搭建及异常解决
2011-05-30 14:43 50541. 说明 此实战笔记是为了之前的学习笔记做一个 ... -
Spring集成ActiveMQ配置
2011-03-21 20:58 279581. 集成环境 Spring采用2.5.6版本, ... -
JAVA的Mina框架传递对象——一劳永逸(转载)
2011-03-09 11:31 2713接触java的Mina框架已经有很多时间了,在网上也读过了很多 ... -
JavaEE5学习笔记12-JSF验证器使用总结
2011-03-09 00:01 19741. JSF验证器 说完转换器就该说说验证器了, ... -
JavaEE5学习笔记11-JSF转换器使用总结
2011-03-08 23:53 27391. JSF的转换器是在JSF生命周期的第2个阶段 ... -
JSF组件生命周期的讨论
2011-03-08 23:38 17341. JSF生命周期 下面我们来看看JSF组件的 ... -
JavaEE5学习笔记10-JSF基本UI控件使用
2011-03-08 23:34 36811. JSF也是JavaEE5的标准,感觉上sun ... -
JavaEE5学习笔记09-将EJB发布成WebService总结(2)
2011-02-28 09:21 1552以上例子只是简单调用了WebService,参数是简单的Str ... -
JavaEE5学习笔记09-将EJB发布成WebService总结(1)
2011-02-28 09:19 41161. 将EJB发布成,或者说暴露成Web服务(也许 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(4)
2011-02-24 09:36 14961. 在JavaEE容器 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(3)
2011-02-24 09:35 12041. 测试代码 部署成功后,在另一个项目中建立测 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(2)
2011-02-24 09:33 1530下面来看针对此实体操作的sessionBean代码。 接口 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(1)
2011-02-24 09:28 1755JPA是JavaEE5提出的一套标准接口,不同的应用服务器对其 ... -
JavaEE5学习笔记06-EJB之消息驱动Bean(MDB)总结----2
2011-02-21 15:56 1444除了activationConfig之外,如果使用其他Java ... -
JavaEE5学习笔记06-EJB之消息驱动Bean(MDB)总结----1
2011-02-21 15:55 19661. 功能介绍 在EJB的分类中还有一个就是消息驱 ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----7
2011-02-21 09:49 13481. EJB的容器式依 ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----6
2011-02-21 09:48 1561BMT就是Bean自己管理事务,这种方式就是以硬编码的方式在B ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----5
2011-02-21 09:46 19061. 有状态的会话Bean的本地、远程调用 其实这 ...
相关推荐
本篇笔记主要聚焦于JPA的关联映射,这是JPA中一个重要的概念,用于定义实体之间的关系。 关联映射允许我们将数据库中的表关系映射到Java对象的关联上。在Hibernate中,这些关系通常通过XML配置文件来定义,而在JPA...
### JPA学习笔记-EJB-02JPA属性注解 #### 一、引言 在上一篇文章中,我们简要介绍了Java Persistence API (JPA)的基础知识,包括它的基本部署和操作流程,从而让我们对JPA有了初步的认识。本文将继续深入探讨JPA的...
### JPA学习文档知识点概述 #### 1. JPA简介 - **定义**: JPA (Java Persistence API) 是由Sun官方提出的一种Java持久化规范,旨在简化Java应用程序中关系型数据库的操作过程。其核心目标是统一现有的ORM (Object-...
### JPA 学习笔记详解 #### 一、JPA 概述 Java Persistence API (JPA) 是 Sun 公司提出的一种 Java 持久层标准,它为 Java 开发者提供了一种对象关系映射 (ORM) 的工具来管理 Java 应用程序中的关系型数据。JPA ...
总结来说,本文档涵盖了Spring JPA的基础配置和使用方法,包括所需的依赖库、持久化配置文件`persistence.xml`的编写、实体类的定义以及实体间关系的映射。通过这些知识点的学习,可以更好地理解和掌握Spring JPA的...
在深入探讨《ejb学习笔记》这一主题之前,我们首先需要理解什么是EJB(Enterprise JavaBeans)。EJB是Java平台为企业级应用开发提供的一套组件模型,它属于J2EE(Java 2 Platform, Enterprise Edition)的一部分,...
### EJB学习笔记4:深入理解实体与JPA #### 实体的概念与作用 实体,在企业级Java开发中,特别是EJB(Enterprise JavaBeans)框架下,指的是具有持久化能力的POJO(Plain Old Java Object)类。不同于实体Bean...
**EJB3.0 学习笔记** EJB(Enterprise JavaBeans)是Java EE平台中的核心组件,用于构建可扩展的、安全的、事务处理的分布式应用程序。EJB3.0是EJB的一个重大更新,引入了许多改进,使得开发过程更为简化,降低了...
EJB 3.0 版本引入了许多改进,简化了API,降低了学习曲线,使其更易于使用。 在MVC(模型-视图-控制器)架构中,EJB 主要用于开发业务层。它负责处理数据和业务逻辑,而视图层则展示数据,控制器则协调视图和模型...
7. **JPA(Java Persistence API)**:JPA是Java标准的持久化框架,简化了对象关系映射,使得Java对象可以直接与数据库进行交互。 8. **JSF(JavaServer Faces)**:JSF是一种MVC(Model-View-Controller)框架,...
在Java EE 5及更高版本中,JPA(Java Persistence API)取代了传统的实体bean,提供了更灵活的ORM(对象关系映射)。 - **消息驱动bean(Message-Driven Beans)**:用于处理JMS(Java Message Service)消息,提供...
5. **生命周期管理**:EJB容器负责Bean的创建、初始化、激活、钝化、销毁等过程,开发者只需关注业务逻辑。 6. **资源注入**:通过依赖注入(Dependency Injection,DI)机制,EJB可以从容器中自动获取所需的资源,...
### JavaEE5学习笔记01-JTA和数据库事务:深入解析与应用 #### 一、JavaEE5概览与核心组件 JavaEE5是Java Enterprise Edition的第五个版本,标志着企业级Java应用的一个重要里程碑。它引入了一系列重要的新特性,...
本学习笔记涵盖了JavaEE的核心技术,帮助学习者深入理解和掌握javaweb的各项技能。 1. **Servlet与JSP** - **Servlet**:Servlet是Java编写的服务器端程序,主要用于扩展服务器的功能。在JavaEE中,Servlet处理...
在"达内培训的ejb课程笔记"中,学习者可能涵盖了以下内容: 1. EJB的基础概念和架构。 2. 如何创建和部署EJB组件,包括编写bean的类、接口、XML配置文件等。 3. EJB的生命周期管理,包括实例化、初始化、激活、钝化...
2. **实体Bean的简化**:EJB3.0引入了JPA(Java Persistence API),这使得实体Bean的处理更加简单,开发者可以通过注解直接将Java类映射到数据库表,而无需编写繁琐的DAO层代码。 3. **无容器依赖的POJOs**:EJB...