`
jzkangta
  • 浏览: 160500 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JPA入门(二)双向一对多

JPA 
阅读更多
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;
    }
}

分享到:
评论

相关推荐

    JPA.rar_jpa

    3. **实体关系(Entity Relationships)**:JPA支持多种关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany),这些关系可以是单向或双向的。 4. **持久化上下文...

    Getting Started with JPA

    `@OneToOne` 和 `@OneToMany` 分别表示一对一和一对多的关系。特别地,在双向关联中,只需要在一方的表中设置外键即可管理双方的关系。没有外键的那一方需要在其关系注解中指定 `mappedBy` 属性,以指明关联字段。 ...

    Spring boot(一): 入门篇.rar_springboot

    通过阅读 "Spring boot(一): 入门篇.pdf" 和 "Spring boot(二):web综合开发.pdf",你可以深入了解 Spring Boot 的基本概念、快速上手指南以及如何进行 Web 应用的综合开发。这些资料将引导你从初识 Spring Boot 到...

    JSF入门文档资料,是PDF文档

    总的来说,这份JSF入门文档资料涵盖了JSF的基本概念、组件使用、数据绑定、事件处理、生命周期等多个方面,适合对Java Web开发感兴趣的初学者阅读。通过学习,你可以快速建立起对JSF的理解,并能开始创建自己的JSF...

    jee 入门(深入浅出学习JEE)

    7. **JTA(Java Transaction API)**:JTA提供了一种统一的方式来管理和协调跨多个资源的事务,确保数据的一致性和完整性。 8. **JAX-RS(Java API for RESTful Web Services)**:JAX-RS用于构建RESTful Web服务,...

    Spring入门,精通,使用指导

    Spring框架是Java开发中的核心组件,它为开发者提供了一个全面的平台来构建高效、可测试且易于维护的应用程序。这个压缩包文件包含了Spring的入门、精通以及使用指导资源,是学习和深入理解Spring的宝贵资料。 ...

    Spring Boot 简单Demo

    **Spring Boot 简单Demo** 是一个针对初学者的入门级项目,旨在帮助开发者快速理解和实践Spring Boot的核心特性。这个Demo涵盖了多个关键模块,包括JPA(Java Persistence API)、Cache缓存管理、MyBatis持久层框架...

    Spring 常见面试题

    1. **使用双向一对多关联**,避免使用单向一对多。 2. **灵活使用单向一对多关联**,以减少不必要的加载。 3. **使用多对一代替一对一**,以减少查询次数。 4. **配置对象缓存**,而不是集合缓存。 5. **一对多集合...

    J2EE+API5.0简体中文版

    4. **JPA(Java Persistence API)2.0**:提供了更好的对象关系映射(ORM)支持,增强了查询语言JPA QL,以及对双向关系、多对多关联和继承的支持。 5. **JMS 1.1**:更新了消息传递服务,增加了对持久订阅和事务性...

    JavaEE7 Tutorial

    4. **Java Persistence API (JPA) 2.1**:JPA允许开发者在Java应用中轻松管理和持久化对象,2.1版本引入了特性如动态列映射、存储过程调用,以及对多租户架构的支持。 5. **Java Message Service (JMS) 2.0**:JMS ...

    Java_EE_6.0_API_DOC

    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

    《Oracle.The Java EE 6 Tutorial》是一本...这本书不仅适合初学者入门,也对有经验的开发者在复习和深化Java EE知识时大有裨益。无论是想要构建高效的企业应用,还是希望提升自身技术能力,这都是不可或缺的参考资料。

    Java_EE_6规范中文版和英文版

    8. **WebSocket支持**:虽然Java EE 6本身不直接支持WebSocket,但在后续的Java EE 7中引入了WebSocket API,不过在Java EE 6规范中,开发者已经开始关注这一新兴的双向通信技术。 9. **注解驱动开发**:Java EE 6...

    Java EE 7.zip

    4. **JPA 2.1**:Java Persistence API 2.1增加了对多租户的支持,允许在一个数据库中为多个独立的应用提供服务。同时,还引入了查询结果缓存,提高了性能。 5. **EJB 3.2**:Enterprise JavaBeans(EJB)3.2简化了...

    JavaEE2017最新版基础班学习笔记

    JavaEE2017是该平台的一个重要版本,包含了对之前版本的改进和新功能的引入,旨在提升开发效率和应用程序的性能。 本"JavaEE2017最新版基础班学习笔记"涵盖了JavaEE入门所需的基本概念和技术,是新手学习JavaEE的...

    javaEE platform

    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 Boot面试题(2022最新版)-重点

    - **易于上手:** 提供了一个快速、广泛的入门体验,使开发者能够迅速掌握 Spring 的使用方法。 - **开箱即用:** 减少了大量的手动配置工作,简化了项目搭建的过程。 - **内置功能:** 集成了多种大型项目所需的非...

    JAVA EE6基本概念(英文版)

    Java Persistence API 2.0在数据持久化方面提供了更多增强,包括多态性查询、批处理操作和更好的事务控制。它使得与数据库的交互更加简单,减轻了开发者的工作负担。 **EJB 3.1** Enterprise JavaBeans 3.1版本...

    j2ee的课件 这就是你要的资源!

    6. **JDBC(Java Database Connectivity)**:虽然JPA提供了一种更高级的数据库访问方式,但了解JDBC仍然是必要的,因为它是最底层的数据库连接API。 7. **JNDI(Java Naming and Directory Interface)**:JNDI为...

Global site tag (gtag.js) - Google Analytics