package org.jzkangta.onetomany;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="orders") //避免数据库关键字
public class Order {
@Id
private int orderId;
@Column(nullable=false)
private Float allPrice = 0f;
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="order") //cascade级联操作 fetch延迟加载,默认为延迟加载 mappedBy设置当前类为关系被维护端,order是指维护端的属性
private Set<OrderItem> items = new HashSet<OrderItem>();
public int getOrderId() {
return orderId;
}
public void setOrderId( int orderId ) {
this.orderId = orderId;
}
public Float getAllPrice() {
return allPrice;
}
public void setAllPrice( Float allPrice ) {
this.allPrice = allPrice;
}
public Set<OrderItem> getItems() {
return items;
}
public void setItems( Set<OrderItem> items ) {
this.items = items;
}
}
package org.jzkangta.onetomany;
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.JoinColumn;
import javax.persistence.ManyToOne;
/**
* 多的一方为关系维护端,关系维护端是指负责外键的更新
* @author Administrator
*
*/
@Entity
public class OrderItem {
@Id
@GeneratedValue
private int id;
@Column(length=40,nullable=false)
private String name;
@Column(nullable=false)
private Float price = 0f;
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},fetch=FetchType.EAGER,optional=false)//cascade不用为ALL,fetch=FetchType.EAGER为默认,optional=true是指order可以为null
@JoinColumn(name="order_id")//外键的字段名字
private Order order;
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 Float getPrice() {
return price;
}
public void setPrice( Float price ) {
this.price = price;
}
public Order getOrder() {
return order;
}
public void setOrder( Order order ) {
this.order = order;
}
}
分享到:
相关推荐
3. **实体关系(Entity Relationships)**:JPA支持多种关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),这些关系可以是单向或双向的。 4. **持久化上下文...
`@OneToOne` 和 `@OneToMany` 分别表示一对一和一对多的关系。特别地,在双向关联中,只需要在一方的表中设置外键即可管理双方的关系。没有外键的那一方需要在其关系注解中指定 `mappedBy` 属性,以指明关联字段。 ...
通过阅读 "Spring boot(一): 入门篇.pdf" 和 "Spring boot(二):web综合开发.pdf",你可以深入了解 Spring Boot 的基本概念、快速上手指南以及如何进行 Web 应用的综合开发。这些资料将引导你从初识 Spring Boot 到...
总的来说,这份JSF入门文档资料涵盖了JSF的基本概念、组件使用、数据绑定、事件处理、生命周期等多个方面,适合对Java Web开发感兴趣的初学者阅读。通过学习,你可以快速建立起对JSF的理解,并能开始创建自己的JSF...
7. **JTA(Java Transaction API)**:JTA提供了一种统一的方式来管理和协调跨多个资源的事务,确保数据的一致性和完整性。 8. **JAX-RS(Java API for RESTful Web Services)**:JAX-RS用于构建RESTful Web服务,...
Spring框架是Java开发中的核心组件,它为开发者提供了一个全面的平台来构建高效、可测试且易于维护的应用程序。这个压缩包文件包含了Spring的入门、精通以及使用指导资源,是学习和深入理解Spring的宝贵资料。 ...
**Spring Boot 简单Demo** 是一个针对初学者的入门级项目,旨在帮助开发者快速理解和实践Spring Boot的核心特性。这个Demo涵盖了多个关键模块,包括JPA(Java Persistence API)、Cache缓存管理、MyBatis持久层框架...
1. **使用双向一对多关联**,避免使用单向一对多。 2. **灵活使用单向一对多关联**,以减少不必要的加载。 3. **使用多对一代替一对一**,以减少查询次数。 4. **配置对象缓存**,而不是集合缓存。 5. **一对多集合...
4. **JPA(Java Persistence API)2.0**:提供了更好的对象关系映射(ORM)支持,增强了查询语言JPA QL,以及对双向关系、多对多关联和继承的支持。 5. **JMS 1.1**:更新了消息传递服务,增加了对持久订阅和事务性...
4. **Java Persistence API (JPA) 2.1**:JPA允许开发者在Java应用中轻松管理和持久化对象,2.1版本引入了特性如动态列映射、存储过程调用,以及对多租户架构的支持。 5. **Java Message Service (JMS) 2.0**:JMS ...
4. **Java Persistence API(JPA)2.0**:JPA 2.0改进了对象关系映射(ORM),增加了更多的查询语言支持,如JPQL(Java Persistence Query Language)和 Criteria API,使得数据库操作更加直观。 5. **JavaServer ...
《Oracle.The Java EE 6 Tutorial》是一本...这本书不仅适合初学者入门,也对有经验的开发者在复习和深化Java EE知识时大有裨益。无论是想要构建高效的企业应用,还是希望提升自身技术能力,这都是不可或缺的参考资料。
8. **WebSocket支持**:虽然Java EE 6本身不直接支持WebSocket,但在后续的Java EE 7中引入了WebSocket API,不过在Java EE 6规范中,开发者已经开始关注这一新兴的双向通信技术。 9. **注解驱动开发**:Java EE 6...
4. **JPA 2.1**:Java Persistence API 2.1增加了对多租户的支持,允许在一个数据库中为多个独立的应用提供服务。同时,还引入了查询结果缓存,提高了性能。 5. **EJB 3.2**:Enterprise JavaBeans(EJB)3.2简化了...
JavaEE2017是该平台的一个重要版本,包含了对之前版本的改进和新功能的引入,旨在提升开发效率和应用程序的性能。 本"JavaEE2017最新版基础班学习笔记"涵盖了JavaEE入门所需的基本概念和技术,是新手学习JavaEE的...
Java EE 7.0还包括了对JMS 2.0、JPA 2.1和Bean Validation 1.1等API的更新,并且进一步强化了管理、安全性、部署和可移植性等方面的要求。 在描述中提到的文档是“Your First Cup: An Introduction to the Java EE ...
- **易于上手:** 提供了一个快速、广泛的入门体验,使开发者能够迅速掌握 Spring 的使用方法。 - **开箱即用:** 减少了大量的手动配置工作,简化了项目搭建的过程。 - **内置功能:** 集成了多种大型项目所需的非...
Java Persistence API 2.0在数据持久化方面提供了更多增强,包括多态性查询、批处理操作和更好的事务控制。它使得与数据库的交互更加简单,减轻了开发者的工作负担。 **EJB 3.1** Enterprise JavaBeans 3.1版本...
6. **JDBC(Java Database Connectivity)**:虽然JPA提供了一种更高级的数据库访问方式,但了解JDBC仍然是必要的,因为它是最底层的数据库连接API。 7. **JNDI(Java Naming and Directory Interface)**:JNDI为...