JPA: Mapping to an existing database

Slides:



Advertisements
Similar presentations
Persistence Jim Briggs 1. 2 Database connectivity: JDBC Java Database Connectivity An API for connecting Java programs (applications, applets and servlets)
Advertisements

WaveMaker Visual AJAX Studio 4.0 Training
SQL Lecture 10 Inst: Haya Sammaneh. Example Instance of Students Relation  Cardinality = 3, degree = 5, all rows distinct.
1 Designing Tables for an Oracle Database System Database Course, Fall 2003.
The Java Persistence API Edel Sherratt. Contents Revisit applications programming Using Java Persistence API.
Java Persistence API Maciej Adamiak. Agenda -Entity, -Entity Operations, -Query Language.
CSE446 S OFTWARE Q UALITY M ANAGEMENT Spring 2014 Yazılım ve Uyguluma Geliştirme Yöneticisi Orhan Başar Evren.
Maven for building Java applications By Nalin De Zoysa
1 The Seven Relationship Types Seven types of relationships can exist between entity beans. There are four types of cardinality: one-to- one, one-to-many,
JPA Java Persistence API. Introduction The Java Persistence API provides an object/relational mapping facility for managing relational data in Java applications.
Database A collection of related data. Database Applications Banking: all transactions Airlines: reservations, schedules Universities: registration, grades.
IS-907 Java EE JPA: Simple Object-Relational Mapping.
Dali JPA Tools. About Dali Dali JPA Tools is an Eclipse Web Tools Platform sub-Project Dali 1.0 is a part of WTP 2.0 Europa coordinated release Goal -
SQL data definition using Oracle1 SQL Data Definition using Oracle.
CS 157B: Database Management Systems II February 4 Class Meeting Department of Computer Science San Jose State University Spring 2013 Instructor: Ron Mak.
Topic : JPA Kaster Nurmukan. Overview of JPA EntityManager.
Databases. Not All Tables Are Created Equal Spreadsheets use tables to store data and formulas associated with that data The “meaning” of data is implicit.
OK lets start, who am I ?. Nayden Gochev (a.k.a. JOKe) Java Spring Android Hybris GWT EJB JSF RMI JAX-RS Struts JMS JPA Hibernate C# ASP.NET TestStudio.
1 Mapping Persistent Objects Entities represent data in the database, so changes to an entity bean result in changes to the database. That's ultimately.
EJB 3.0 Persistence Based on: Patel, Brose, Silverman, Mastering Enterprise JavaBeans 3.0.
The Relational Model1 ER-to-Relational Mapping and Views.
Databases MIS 21. Some database terminology  Database: integrated collection of data  Database Management System (DBMS): environment that provides mechanisms.
Visual C# 2012 How to Program © by Pearson Education, Inc. All Rights Reserved.
Middleware Technology (J2EE/EJB) Entity Bean (JBoss EJB 3.0 tutorial)
Topic : Hibernate 3:Advanced ORM Kaster Nurmukan.
CREATE TABLE CREATE TABLE statement is used for creating relations Each column is described with three parts: column name, data type, and optional constraints.
8 Copyright © 2004, Oracle. All rights reserved. Managing Schema Objects.
- Joiner Transformation. Introduction ►Transformations help to transform the source data according to the requirements of target system and it ensures.
Chapter 4 Logical & Physical Database Design
The Java Persistence API ©SoftMoore ConsultingSlide 1.
Java Persistence API part 1 INFORMATICS ENGINEERING – UNIVERSITY OF BRAWIJAYA Eriq Muhammad Adams J
Java Persistence API (JPA) Relationships. Kinds of relationships UML associations and aggregations (ER non- identifying relationships, shared semantics)
JPA The New Enterprise Persistence Standard Mike Keith
Topic : Hibernate 1 Kaster Nurmukan. An ORM tool Used in data layer of applications Implements JPA.
IS-907 Java EE Introduction to JPA. Java Persistence API A framework for using relational databases in Java programs mapping between tables and classes,
JPA in Vaadin CSCI 3130 Winter What is JPA?  Java Persistence API  Allows for “easy” storage of Java Objects  Is a type of Object Relational.
Hibernate Thuy, Le Huu. Pentalog VN. Agenda Hibernate Annotations Improving performance – Lazy loading – Fetching Strategies – Dynamic insert, dynamic.
CS520 Web Programming Object-Relational Mapping with Hibernate and JPA Chengyu Sun California State University, Los Angeles.
CS520 Web Programming Object-Relational Mapping with Hibernate and JPA (I) Chengyu Sun California State University, Los Angeles.
8 Copyright © 2005, Oracle. All rights reserved. Managing Schema Objects.
Hibernate Annotation 李日貴 (jini) jakarta99 AT gmail.com SoftLeader Tech. Corp. Taiwan Java Annotation Lesson 1.
1 Designing Tables for a Database System. 2 Where we were, and where we’re going The Entity-Relationship model: Used to model the world The Relational.
7 Copyright © 2004, Oracle. All rights reserved. Managing Schema Objects.
Object-Relational Mapping. Contents  Default Mapping Rules  Elementary Mapping  Embeddables  Relationship Mapping  Inheritance Mapping.
CS520 Web Programming Object-Relational Mapping with Hibernate and JPA Chengyu Sun California State University, Los Angeles.
SQL, the Structured Query Language
Don't Know Jack About Object-Relational Mapping?
CS6320 – Java Persistence API
Chengyu Sun California State University, Los Angeles
Tables & Relationships
 2012 Pearson Education, Inc. All rights reserved.
IS221: Database Management
Chengyu Sun California State University, Los Angeles
Advanced Java Programming
Hibernate (JPA) Code First Entity Relations
Designing Tables for a Database System
DATABASE SQL= Structure Query Language مبادئ قواعد بيانات
Database Applications (15-415) ORM - Part I Lecture 11, February 11, 2018 Mohammad Hammoud.
CS4222 Principles of Database System
SQL data definition using Oracle
Entity-Relationship Modeling "Extended"
Relational Queries (query 12) Display vendor contact info (contact person and phone number) for inventory products (relationship query) Query: Inventory.
Session - 6 Sequence - 1 SQL: The Structured Query Language:
logical design for relational database
Chengyu Sun California State University, Los Angeles
Session - 6 Sequence - 1 SQL: The Structured Query Language:
Chengyu Sun California State University, Los Angeles
Database Instructor: Bei Kang.
Entity-Relationship Modeling "Extended"
Entity-Relationship Modeling "Extended"
Presentation transcript:

JPA: Mapping to an existing database IS-907 Java EE JPA: Mapping to an existing database

Mapping entities to existing databases We have seen how JPA automatically maps classes to tables To map a class model to an existing database more detailed control over the mapping may be needed http://download.oracle.com/javaee/6/api/ package javax.persistence, Annotation Types Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Table names Tablename, schema and catalog can optionally be specified with a @Table annotation: @Entity @Table(name=“tablename””, schema=“schema”, catalog=“catalog”) public class Employee { ... } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Columns Column properties are specified with column annotation: @Entity public class Employee { @Id private long empId; @Column(name=“login”, unique=“true”, nullable=“false”) private String username; ... } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Large objects The @Lob annotation is used to map fields to CLOBs or BLOBs byte[], Byte[], and Serializable classes are mapped to BLOB char[], Character[], and String are mapped to CLOB @Entity public class Employee { @Lob byte[] speech; @Lob Picture picture; @Lob String biography; } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

@Basic annotation Fetching of field values can be deferred until the field is actually needed, to speed up loading of data: @Entity public class Employee { @Basic(fetch=“FetchType.LAZY”) @Lob private byte[] picture; ... } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Temporal types The mapping of Date and Calendar fields can be controlled with @Temporal annotations: @Entity public class Employee { @Temporal(TemporalType.DATE) private Calendar birthDate; @Temporal(TemporalType.TIMESTAMP) private Timestamp lastLogin; } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Foreign keys The name of foreign key columns can be specified with a JoinColumn annotation: @Entity public class Employee { @ManyToOne @JoinColumn(name=“dep”, nullable=“false”, unique=“false”) private Department dep; ... } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Join tables @Entity public class Project { @ManyToMany @JoinTable(name=“proj_emp” joinColumns=@JoinColumn(name=“projno”), inverseJoinColumns=@JoinColumn(name=“empid”)) private List<Employee> members; ... } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Ordered list @Entity public class Project { @ManyToMany @OrderBy(“name ASC”) private List<Employee> members; ... } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Using a Map instead of a List @Entity public class Project { @ManyToMany @MapKey(name=“name”) private Map<String,Employee> members; ... } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Lazy relationships Loading of related objects may be deferred by specifying fetch type: @Entity public class Employee { @ManyToOne(fetch=“FetchType.LAZY”) private Department department; ... } Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon

Cascading @Entity public class Order { @OneToMany(cascade={CascadeType.PERSIST, CascadType.MERGE}) List<OrderLine> lines; } ALL DETACH MERGE PERSIST REFRESH REMOVE Even Åby Larsen (even.larsen@uia.no) IS-102 Introduksjon