package org.jzkangta.onetoone;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
/**
* 选择了Person是关系维护端,所以Person为负责外键的更新
* @author Administrator
*
*/
@Entity
public class Person {
@Id
@GeneratedValue
private int id;
@Column(nullable=false)
private String name;
@OneToOne(cascade=CascadeType.ALL,optional=false)
@JoinColumn(name="idCard_id") //关系维护端设置外键
private IDCard idCard;
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getName() {
return name;
}
public void setName( String name ) {
this.name = name;
}
public IDCard getIdCard() {
return idCard;
}
public void setIdCard( IDCard idCard ) {
this.idCard = idCard;
}
}
package org.jzkangta.onetoone;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToOne;
@Entity
public class IDCard {
@Id
@GeneratedValue
private int id;
@Column(length=18,nullable=false)
private String idNumber;
@OneToOne(mappedBy="idCard",cascade={CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH},optional=false,fetch=FetchType.EAGER)//被维护端,idCard为维护端里的属性,optional=false不允许为null
private Person person;
public int getId() {
return id;
}
public void setId( int id ) {
this.id = id;
}
public String getIdNumber() {
return idNumber;
}
public void setIdNumber( String idNumber ) {
this.idNumber = idNumber;
}
public Person getPerson() {
return person;
}
public void setPerson( Person person ) {
this.person = person;
}
}
分享到:
相关推荐
3. **实体关系(Entity Relationships)**:JPA支持多种关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),这些关系可以是单向或双向的。 4. **持久化上下文...
`@OneToOne` 和 `@OneToMany` 分别表示一对一和一对多的关系。特别地,在双向关联中,只需要在一方的表中设置外键即可管理双方的关系。没有外键的那一方需要在其关系注解中指定 `mappedBy` 属性,以指明关联字段。 ...
Spring Boot 提供对 WebSocket 的支持,可以用来实现双向通信,如聊天应用或实时推送。 6. **错误处理**: 自定义错误页面和全局异常处理器是 Web 开发中常见的需求,Spring Boot 提供了优雅的方式来定义这些。 ...
在《JSF入门》这本书中,我们将深入探讨JSF的基础知识,帮助初学者快速掌握这一技术。 JSF的核心概念包括以下几个方面: 1. **组件模型**:JSF的组件模型允许开发者使用预定义的UI组件,如按钮、文本框、表格等,...
8. **JSF与Java EE集成**:作为Java EE的一部分,JSF可以无缝集成其他Java EE技术,如EJB、JPA和CDI,这使得开发者能构建出完整的、企业级的Web应用。 9. **学习资源**:提供的文件"JSF框架使用入门.avi"可能是一个...
这篇JSF入门文档资料,以PDF格式提供,对于初学者来说,是一份非常宝贵的资源,可以帮助理解并掌握JSF的基础知识和核心概念。 首先,JSF的核心理念是简化Web开发,通过提供组件化的方式来构建用户界面。它包含了一...
Hibernate是一个流行的JPA实现,提供了更丰富的功能和更高的性能。 4. **JSF(JavaServer Faces)**:JSF是一种MVC(模型-视图-控制器)框架,简化了创建用户界面的过程。它包含UI组件、事件处理和数据绑定等功能。...
6. **数据访问集成**:包括JDBC模板、ORM框架集成(如Hibernate、MyBatis),以及Spring Data JPA等,简化数据库操作。 7. **Spring Boot**:Spring的现代启动器,用于快速构建独立的、生产级别的基于Spring的应用...
**Spring Boot 简单Demo** 是一个针对初学者的入门级项目,旨在帮助开发者快速理解和实践Spring Boot的核心特性。这个Demo涵盖了多个关键模块,包括JPA(Java Persistence API)、Cache缓存管理、MyBatis持久层框架...
4. **EXTJS**:`ext从入门到精通.pdf` 和 `ExtJS实用开发指南.pdf` 提及EXTJS,这是一个用于构建富客户端Web应用的JavaScript库。EXTJS提供了丰富的组件和布局管理,使得开发者可以创建功能强大的桌面式Web界面。 5...
4. **JPA(Java Persistence API)2.0**:提供了更好的对象关系映射(ORM)支持,增强了查询语言JPA QL,以及对双向关系、多对多关联和继承的支持。 5. **JMS 1.1**:更新了消息传递服务,增加了对持久订阅和事务性...
5. **Spring Data JPA**:Spring Boot与Spring Data JPA结合,可以方便地实现对关系型数据库的CRUD操作,支持ORM映射,如Hibernate。 6. **Thymeleaf/FreeMarker 模板引擎**:Spring Boot可以与Thymeleaf或...
1. **使用双向一对多关联**,避免使用单向一对多。 2. **灵活使用单向一对多关联**,以减少不必要的加载。 3. **使用多对一代替一对一**,以减少查询次数。 4. **配置对象缓存**,而不是集合缓存。 5. **一对多集合...
4. **Java Persistence API (JPA) 2.1**:JPA允许开发者在Java应用中轻松管理和持久化对象,2.1版本引入了特性如动态列映射、存储过程调用,以及对多租户架构的支持。 5. **Java Message Service (JMS) 2.0**:JMS ...
《Oracle.The Java EE 6 Tutorial》是一本...这本书不仅适合初学者入门,也对有经验的开发者在复习和深化Java EE知识时大有裨益。无论是想要构建高效的企业应用,还是希望提升自身技术能力,这都是不可或缺的参考资料。
1. **简化开发**:通过引入轻量级的Web Profile,Java EE 6.0降低了入门门槛。Web Profile仅包含了开发大多数Web应用所需的核心服务,如Servlet、JSP、JSF、CDI、JPA和EJB 3.1 Lite。 2. **依赖注入(Dependency ...
8. **WebSocket支持**:虽然Java EE 6本身不直接支持WebSocket,但在后续的Java EE 7中引入了WebSocket API,不过在Java EE 6规范中,开发者已经开始关注这一新兴的双向通信技术。 9. **注解驱动开发**:Java EE 6...
- **易于上手:** 提供了一个快速、广泛的入门体验,使开发者能够迅速掌握 Spring 的使用方法。 - **开箱即用:** 减少了大量的手动配置工作,简化了项目搭建的过程。 - **内置功能:** 集成了多种大型项目所需的非...
6. **JDBC(Java Database Connectivity)**:虽然JPA提供了一种更高级的数据库访问方式,但了解JDBC仍然是必要的,因为它是最底层的数据库连接API。 7. **JNDI(Java Naming and Directory Interface)**:JNDI为...