Martin Ledvinka Winter Term 2020

Martin Ledvinka Winter Term 2020

JPA Martin Ledvinka [email protected] Winter Term 2020 Martin Ledvinka ([email protected]) JPA Winter Term 2020 1 / 15 Contents 1 Introduction 2 Tasks Martin Ledvinka ([email protected]) JPA Winter Term 2020 2 / 15 Introduction Introduction Martin Ledvinka ([email protected]) JPA Winter Term 2020 3 / 15 Introduction Object-relational mapping Mapping between the database (declarative) schema and the data structures in an object oriented language. Martin Ledvinka ([email protected]) JPA Winter Term 2020 4 / 15 Introduction JPA Basics The idea: \map Java classes to database records" Object-relational mapping in Java @Entity CREATE TABLE PERSON ( public Person f ID bigint PRIMARY KEY NOT NULL, @Id HASNAME varchar(255) private Long id; ); private String hasName; // setters+getters g Martin Ledvinka ([email protected]) JPA Winter Term 2020 5 / 15 Introduction JPA Main Concepts Entity class: a Java class representing a set of persistent objects mapped onto a relational table Persistence Unit: the set of all entity classes that are persistently mapped to one database Persistence Context: the set of all entities defined in the persistence unit being used at a given time Entity manager: the interface for interacting with a Persistence Context Martin Ledvinka ([email protected]) JPA Winter Term 2020 6 / 15 Introduction JPA Main Concepts { Visual Figure: Main JPA concepts and their relationship. Martin Ledvinka ([email protected]) JPA Winter Term 2020 7 / 15 Introduction JPA { EntityManager EntityManager (EM) instance is in fact a generic DAO, while entities can be understood as DTO's. Selected operations on EM (CRUD): Create: em.persist Read: em.find, em.refresh Update: em.merge Delete: em.remove Native/JPQL queries: em.createNativeQuery, em.createQuery, em.createNamedQuery, etc. Resource-local transactions: em.getTransaction.[begin,commit,rollback] Martin Ledvinka ([email protected]) JPA Winter Term 2020 8 / 15 Introduction Implementations We will be using Eclipselink Reference JPA implementation Another (arguably more popular) solution is Hibernate JPA implementation + its own, Session-based API Session ∼ EntityManager Provided by the Spring Boot spring-boot-starter-data-jpa project by default More: Apache OpenJPA, DataNucleus, etc. Each implementation has its quirks, additional options/specific API, and problems Martin Ledvinka ([email protected]) JPA Winter Term 2020 9 / 15 Tasks Tasks Martin Ledvinka ([email protected]) JPA Winter Term 2020 10 / 15 Tasks Syncing Your Fork 1 Fetch branches and commits from the upstream repository (EAR/B201-eshop) git fetch upstream 2 Check out local branch corresponding to the task branch git checkout -b b201-seminar-03-task 3 Merge changes from the corresponding upstream branch git merge upstream/b201-seminar-03-task 4 Do your task 5 Push the solution to your fork git push origin b201-seminar-03-task Martin Ledvinka ([email protected]) JPA Winter Term 2020 11 / 15 Tasks Task: 1 Point The application is missing an object model (JPA entity classes). Create an object model corresponding to the class diagram below. We will start together, your task is to finish it. Acceptance criteria: Project is compilable and the object model corresponds to the class diagram below. Martin Ledvinka ([email protected]) JPA Winter Term 2020 12 / 15 The End The End Martin Ledvinka ([email protected]) JPA Winter Term 2020 13 / 15 The End The End Thank You Martin Ledvinka ([email protected]) JPA Winter Term 2020 14 / 15 The End Resources https://cw.fel.cvut.cz/b201/_media/courses/b6b36ear/ lectures/lecture-03-jpa-s.pdf http://www.objectdb.com/api/java/jpa/annotations Martin Ledvinka ([email protected]) JPA Winter Term 2020 15 / 15.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    15 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us