Presentation made at JavaONE, Hyderabad, on 10th May 2011. Slides are a slightly modified version of what's presented by Linda D. at JavaONE, SF, in 2010.
Introduction to JPA and Hibernate including examplesecosio GmbH
In this talk, held as part of the Web Engineering lecture series at Vienna University of Technology, we introduce the main concepts of Java Persistence API (JPA) and Hibernate.
The first part of the presentation introduces the main principles of JDBC and outlines the major drawbacks of JDBC-based implementations. We then further outline the fundamental principles behind the concept of object relation mapping (ORM) and finally introduce JPA and Hibernate.
The lecture is accompanied by practical examples, which are available on GitHub.
Introduction to JPA and Hibernate including examplesecosio GmbH
In this talk, held as part of the Web Engineering lecture series at Vienna University of Technology, we introduce the main concepts of Java Persistence API (JPA) and Hibernate.
The first part of the presentation introduces the main principles of JDBC and outlines the major drawbacks of JDBC-based implementations. We then further outline the fundamental principles behind the concept of object relation mapping (ORM) and finally introduce JPA and Hibernate.
The lecture is accompanied by practical examples, which are available on GitHub.
Java and Spring Data JPA: Easy SQL Data Access
Abstract
Presenter: Miya W. Longwe, MBA, MSE, Tech Lead, Staples, Inc, Framingham MA 01702
Accessing data repositories in various applications programming languages typically involves writing of tedious boilerplate lines of code. Some application development frameworks such as Spring have tried to make the experience more succinct by providing abstraction layers such as HibernateTemplate and JdbcTemplate, etc. Despite these APIs, the developers still spend a lot time writing repetitive code than concentrating on implementing business requirements. Developers at Spring, led by Oliver Gierke, introduced Spring Data JPA which “aims to significantly improve the implementation of data access layers by reducing the effort to the amount that's actually needed. As a developer you write your repository interfaces, including custom finder methods, and Spring will provide the implementation automatically”.
Spring Data JPA provides a powerful, out-of-the-box alternative to creating your own DAO framework. You declare custom repository operations on an interface, and the framework generates dynamic implementations (not code generation) automatically, based on conventions around method names. As part of the presentation, we'll also review a demo to look at Spring Java configuration (as opposed to XML configuration), and investigate the @Profile annotation – configuration details which may make life a bit easier in various ways when setting up unit testing of our repository classes, using out-of-the-box alternative to creating DAO framework, how to create custom repositories, pagination and support for custom queries among other features.
Presenter's Bio
Miya W. Longwe is a Senior Software Engineer and Tech Lead at Staples, Inc. where he is currently working on an initiative to re-platform the company’s ecommerce architecture to offer platform-driven, modular products that can be quickly customized, enhanced, and branded as needed.
Miya has been a software professional since 1997. His 16 years software development career includes working for large companies to small startups, building solutions for enterprises and consumers, working with a broad range of technologies.
Miya Longwe is a hands-on java developer. He believes that in order to be a relevant and effective software developer one needs to remain a deeply knowledgeable, up-to-date, and productive software developer. His research interests include model-driven engineering, domain specific languages, test driven development and project risk management.
Miya graduated from the University of Malawi (Lilongwe, Malawi) and has an MBA from the University of Wales Cardiff Business School (Wales, UK) and a Masters in Software Engineering from Brandeis University (MA, USA).
Occasionally, Miya can be spotted fishing the banks of the south shore (MA) with his two boys, William and Daniel.
Spring Data is a high level SpringSource project whose purpose is to unify and ease the access to different kinds of persistence stores, both relational database systems and NoSQL data stores.
Con la versione 7 di Drupal è stato introdotto il concetto di Entity, poi evoluto con la versione 8, utilizzato come base di buona parte degli elementi core (nodi, tassonomie, utenti, ...), ma - soprattutto - è stata data la possibilità di costruire entity custom. L'utilizzo di queste apre le possibilità di personalizzazione dello strumento ad un livello superiore velocizzando notevolmente lo sviluppo.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Con la versione 7 di Drupal è stato introdotto il concetto di Entity.
Verranno mostrate le potenzialità nell'uso delle Entity custom e le integrazioni possibili.
Relatore: Marco Vito Moscaritolo
Presentation I gave at the Berkeley Drupal Users Group on February 27, 2012 covering entities in Drupal 7 including entity types, bundles, fields, nodes, the Entity API and the Schema API. I use TextbookMadness.com as an example of how to leverage entities.
Click on my name to find a newer (better!) version of these slides.
Similar to Java Persistence API 2.0: An Overview (20)
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIVladimir Iglovikov, Ph.D.
Presented by Vladimir Iglovikov:
- https://www.linkedin.com/in/iglovikov/
- https://x.com/viglovikov
- https://www.instagram.com/ternaus/
This presentation delves into the journey of Albumentations.ai, a highly successful open-source library for data augmentation.
Created out of a necessity for superior performance in Kaggle competitions, Albumentations has grown to become a widely used tool among data scientists and machine learning practitioners.
This case study covers various aspects, including:
People: The contributors and community that have supported Albumentations.
Metrics: The success indicators such as downloads, daily active users, GitHub stars, and financial contributions.
Challenges: The hurdles in monetizing open-source projects and measuring user engagement.
Development Practices: Best practices for creating, maintaining, and scaling open-source libraries, including code hygiene, CI/CD, and fast iteration.
Community Building: Strategies for making adoption easy, iterating quickly, and fostering a vibrant, engaged community.
Marketing: Both online and offline marketing tactics, focusing on real, impactful interactions and collaborations.
Mental Health: Maintaining balance and not feeling pressured by user demands.
Key insights include the importance of automation, making the adoption process seamless, and leveraging offline interactions for marketing. The presentation also emphasizes the need for continuous small improvements and building a friendly, inclusive community that contributes to the project's growth.
Vladimir Iglovikov brings his extensive experience as a Kaggle Grandmaster, ex-Staff ML Engineer at Lyft, sharing valuable lessons and practical advice for anyone looking to enhance the adoption of their open-source projects.
Explore more about Albumentations and join the community at:
GitHub: https://github.com/albumentations-team/albumentations
Website: https://albumentations.ai/
LinkedIn: https://www.linkedin.com/company/100504475
Twitter: https://x.com/albumentations
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Java Persistence API 2.0: An Overview
1. <Insert Picture Here>
JavaTM Persistence API 2.0: An Overview
Sanjeeb Sahoo
Sr. Staff Engineer, Sun, an Oracle Company
2. The following/preceding is intended to outline
our general product direction. It is intended for
information purposes only, and may not be
incorporated into any contract. It is not a
commitment to deliver any material, code, or
functionality, and should not be relied upon in
making purchasing decisions.
The development, release, and timing of any
features or functionality described for Oracle’s
products remains at the sole discretion of
Oracle.
2
3. JavaTM Persistence API: Brief History
• Java Persistence 1.0
– Standardized object/relational mapping for Java
applications
– Available as part Java EE 5 Platform or standalone
– Covered most of the essential features
• Java Persistence 2.0
– More and better increased application portability
– Released in December 2009
– Available as part of Java EE 6 Platform or standalone
– Reference Implementation is EclipseLink
– Available as part of GlassFish v3
3
4. Key Interfaces
• EntityManagerFactory
– Used to create entity managers
– One entity manager factory per persistence unit
• EntityManager
• Used to manage persistence context
• Entities read/written from database
• Operations: persist, remove, find, refresh, createQuery,…
• Query, TypedQuery
• Used for query configuration, parameter binding, query
execution
4
5. Packaging
• Java SE (Standalone Java Application)
– Jar file with entities, application classes and META-
INF/persistence.xml
• Java EE
– War file
• WEB-INF/classes/META-INF/persistence.xml
• WEB-INF/lib/entities.jar (with META-INF/persistence.xml)
– EJB jar
• EJBs and entities and META-INF/persistence.xml
– EAR file
• lib/entities.jar with META-INF/persistence.xml
5
7. JavaTM Persistence 2.0:
New Features
• Expanded modeling capabilities
• Additional O/R mapping options
• Additions to Java Persistence query language
• Metamodel API
• Criteria API
• Pessimistic locking
• Standardization of many configuration options
• Support for validation
7
8. Object/Relational Mapping
Essentials
• Entities
• Basic types
• Strings, integers, floats, decimals, …
• Embeddable classes
• E.g., Address
• Relationships
• One-to-one, one-to-many/many-to-one, many-to-many
• Collections modeled with java.util Collection, Set, List, or Map
• Customized via metadata: @JoinColumn, @JoinTable, etc.
• Inheritance
• Single table, joined subclass, table per class (optional)
8
9. JavaTM Persistence 2.0:
Expanded modeling and mapping
• Collections of basic types
• Collections of embeddables
• Richer support for embeddable classes
– Multiple levels of embedding
– Embeddable classes with relationships
• Persistently ordered lists
• Improved map support
– Joins with additional columns
– Ternary relationships
• Orphan deletion
9
16. Multiple Levels of Embedding
@Entity public class Employee {
@Id int empId;
String name;
ContactInfo contactInfo;
. . .
}
@Embeddable public class ContactInfo {
@Embedded Address address;
. . .
}
16
17. Embeddables with Relationships
@Entity public class Employee {
@Id int empId;
String name;
ContactInfo contactInfo;
. . .
}
@Embeddable public class ContactInfo {
@Embedded Address address;
@OneToMany Set<Phone> phones;
. . .
}
17
18. Persistently Ordered Lists
• Order is maintained in database by provider
– Uses additional (integral) ordering column
• Specified with @OrderColumn
• Provides alternative to @OrderBy
18
19. Persistently Ordered Lists
@Entity public class CreditCard {
@Id String cardNumber;
@ManyToOne Customer customer;
...
@OneToMany(mappedBy=“creditCard”)
@OrderColumn(name=“TXORDER”)
List<CardTransaction> transactionHistory;
...
}
@Entity public class CardTransaction {
@Id @GeneratedValue Long id;
@ManyToOne @JoinColumn(name=“CARDID”)
CreditCard creditCard;
@Temporal(DATE) Date txDate;
...
}
19
21. @OrderBy Alternative
@Entity public class CreditCard {
@Id String cardNumber;
@ManyToOne Customer customer;
...
@OneToMany(mappedBy=“creditCard”)
@OrderColumn(name=“TXORDER”) @OrderBy(“txDate”)
List<CardTransaction> transactionHistory;
...
}
@Entity public class CardTransaction {
@Id @GeneratedValue Long id;
@ManyToOne @JoinColumn(name=“CARDID”)
CreditCard creditCard;
@Temporal(DATE) Date txDate;
...
}
21
22. Generalized Maps
• Map key can be
– Basic type
– Embeddable
– Entity
• Map value can be
– Basic type
– Embeddable
– Entity
• Support for legacy join tables with additional
columns
• Support for ternary relationships
22
23. Generalized Maps
• Map collection is specified with
– @ElementCollection, @OneToMany, @ManyToMany
– Annotation is determined by map value
• Customize mapping with:
– @CollectionTable (for element collection)
– @JoinTable (for relationship)
– @MapKeyColumn (for basic map key)
– @MapKeyJoinColumn(s) (for entity key)
– @AttributeOverride(s) using “key.” or “value.” syntax
(for embeddables)
23
24. Generalized Maps
@Entity
public class VideoStore {
@Id Integer storeId;
Address location;
@ElementCollection
@CollectionTable(
joinColumn=@JoinColumn(name=“VIDEO_STOREID”))
Map<Movie, Integer> inventory;
...
}
@Entity
public class Movie {
@Id String title;
String director;
...
}
24
25. Generalized Maps
VIDEOSTORE
STOREID NAME STREET CITY STATE …
MOVIE
TITLE DIRECTOR …
VIDEOSTORE_INVENTORY
VIDEO_STOREID INVENTORY_KEY INVENTORY
25
26. Automatic Orphan Deletion
• Deletion of related entities when removed from
relationship
– For entities logically “owned” by “parent”
– For one-to-one and one-to-many relationships
• Specified with orphanRemoval element
– cascade=REMOVE is redundant
26
28. Java Persistence Query Language:
New Functionality
• Support for all new modeling and mapping
features
• Operators and functions in select list
• Case, coalesce, nullif expressions
• Restricted polymorphism
• Collection-valued input parameters
• Date / time / timestamp literals
28
29. New Operators
• INDEX
– For ordered lists
• KEY, VALUE, ENTRY
– For maps
• CASE, COALESCE, NULLIF
– For case expressions and the like
• TYPE
– For entity type expressions / restricted polymorphism
29
31. Criteria API
• Object-based API for building queries
• Designed to mirror JPQL semantics
• Strongly typed
– Based on type-safe metamodel of persistence unit
– Heavy use of Java generics
– Typing carries through to query execution as well
• Supports object-based or strong-based navigation
31
32. Criteria API: Core Interfaces
• CriteriaQuery
– Represents a query definition object
– Used to add / replace / browse constituent query elements
– select, from, where, orderBy, groupBy, having,… methods
• CriteriaBuilder
– Factory for CriteriaQuery objects
– Obtained from EntityManager or EntityManagerFactory
– Used to create selections, expressions, restrictions,
orderings…
• Root
– Query root
32
33. Criteria API: Core Interfaces
• Join, ListJoin, MapJoin,…
– Joins from a root or existing join
• Path
– Navigation from a root, join, path
• Subquery
• Parameter
• TypedQuery
– Executable query object
– Extends Query interface
• Tuple
– Multiple-valued result type
33
34. The World’s Simplest Query
SELECT c
FROM Customer c
CriteriaBuilder cb = ...;
CriteriaQuery<Customer> cq = cb.createQuery(Customer.class);
Root<Customer> c = cq.from(Customer.class);
cq.select(c);
34
35. Joins and Navigation
SELECT c
FROM Customer c join c.orders o
CriteriaBuilder cb = ...;
CriteriaQuery<Customer> cq = cb.createQuery(Customer.class);
Root<Customer> c = cq.from(Customer.class);
Join<Customer, Order> o = customer.join(“orders”);
cq.select(c);
35
36. Joins and Navigation: What’s the Problem?
SELECT c
FROM Customer c join c.orders o
CriteriaBuilder cb = ...;
CriteriaQuery<Customer> cq = cb.createQuery(Customer.class);
Root<Customer> c = cq.from(Customer.class);
Join<Customer, Order> o = customer.join(“wombats”);
cq.select(c);
36
37. Metamodel
• Abstract, “schema-level” view of managed
classes of persistence unit
– Entities, mapped superclasses, embeddables, and their
attributes and relationships
• Accessible at runtime
– EntityManagerFactory.getMetamodel()
– EntityManager.getMetamodel()
• Useful for frameworks
• Provides foundation for type-safe queries
• Can be materialized as static metamodel classes
– Use javac + annotation processor
37
38. Type-safe Navigation
SELECT c
FROM Customer c join c.orders o
CriteriaBuilder cb = ...;
CriteriaQuery<Customer> cq = cb.createQuery(Customer.class);
Root<Customer> c = cq.from(Customer.class);
Join<Customer, Order> o = customer.join(Customer_.orders);
cq.select(c);
38
39. Optimistic Locking
• Assumes read-committed isolation, deferred
writes
– Short term read-locks
– Long term write-locks
• Layered on top of @Version use
– Verify version for updated entities before transaction
commit
• Lock Modes
– OPTIMISTIC (READ)
– OPTIMISTIC_FORCE_INCREMENT (WRITE)
• “READ” lock => verify version for clean data
• “WRITE” lock => update version for clean data
39
40. Pessimistic Locking
• Grab database locks upfront
• Lock Modes
– PESSIMISTIC_READ
– PESSIMISTIC_WRITE
– PESSIMISTIC_FORCE_INCREMENT
• Normal (default) pessimistic locking
– Persistent state of entity (except element collections)
– Relationships where entity holds foreign key
• Extended pessimistic locking
– Uses javax.persistence.lock.scope property (EXTENDED)
– Element collections and relationships in join tables
– Phantoms are possible
40
47. JPA 2.1 Candidate Features
http://jcp.org/en/jsr/detail?id=338
NEW
Multi-tenancy
Support for stored procedures, vendor function
Update and Delete Criteria queries, JPQL ↔
Criteria
Query by Example
Support for schema generation
UUID generator type
Persistence Context synchronization control
Dynamic definition of PU
Additional event listeners
47
48. Summary
• Expanded modeling capabilities
• Additional O/R mapping options
• Additions to Java Persistence query language
• Metamodel API
• Criteria API
• Pessimistic locking
• Standardization of many configuration options
• Support for validation
• Improved portability
48
49. Resources
• Java Persistence 2.0 Specification
http://jcp.org/en/jsr/detail?id=317
• Reference Implementation is EclipseLink
http://www.eclipse.org/eclipselink
• Available as part of Java EE 6 with GlassFish
http://glassfish.org
• Book: Pro JPA 2 (Keith & Schincariol)
49
50. The following/preceding is intended to outline
our general product direction. It is intended for
information purposes only, and may not be
incorporated into any contract. It is not a
commitment to deliver any material, code, or
functionality, and should not be relied upon in
making purchasing decisions.
The development, release, and timing of any
features or functionality described for Oracle’s
products remains at the sole discretion of
Oracle.
50