Giter Club home page Giter Club logo

datanucleus-api-jakarta's Introduction

datanucleus-api-jakarta

Support for DataNucleus persistence using the Jakarta Persistence API. The Jakarta Persistence API is a repackaged JPA, using package "jakarta.persistence" rather than "javax.persistence" for all classes, interfaces, annotations etc. It started at v3.0.0 equating to JPA v2.2.0.

Jakarta "persistence provider" is org.datanucleus.api.jakarta.PersistenceProviderImpl.
Jakarta EntityManagerFactory is implemented by org.datanucleus.api.jakarta.JakartaEntityManagerFactory.
Jakarta EntityManager is implemented by org.datanucleus.api.jakarta.JakartaEntityManager.
Jakarta Query is implemented by org.datanucleus.api.jakarta.JakartaQuery.
Jakarta EntityTransaction is implemented by org.datanucleus.api.jakarta.JakartaEntityTransaction.

This is built using Maven, by executing mvn clean install which installs the built jar in your local Maven repository.

KeyFacts

License : Apache 2 licensed
Issue Tracker : http://github.com/datanucleus/datanucleus-api-jakarta/issues
Javadocs : 6.0
Download : Maven Central
Dependencies : See file pom.xml
Support : DataNucleus Support Page

Jakarta Persistence Next Status

The Jakarta Persistence project is run by Eclipse, rather than using an "expert group" like previous persistence specs; largely made up of Oracle staff. They do, however, provide an issue tracker for people to raise issues of what they would like to see in the "next" release of JPA. DataNucleus, not being content to wait for hell to freeze over, has gone ahead and worked on the following issues. All of these are embodied in our "Jakarta Persistence 3.0" and "Jakarta Persistence 3.1" offerings (both DN 6.0+).

jpa-spec-25 : access the JPQL string query and native query from a JPA Query object. Done
jpa-spec-30 : case sensitive JPQL queries. Not implemented but would simply need JDOQL semantics copying
jpa-spec-32 : Support for javax.cache. Provided since very early javax.cache releases!
jpa-spec-35 : support for more types. DataNucleus has provided way more types since JPA1 days!
jpa-spec-41 : targetClass attribute for @Embedded. Provided in jakarta.persistence-3.0.0.jar
jpa-spec-42 : allow null embedded objects. Provided by extension
jpa-spec-48 : @CurrentUser on a field. Implemented using DN extension annotations
jpa-spec-49 : @CreateTimestamp, @UpdateTimestamp. Implemented using DN extension annotations
jpa-spec-52 : EM.createNativeQuery(String,Class). DN already works like that
jpa-spec-74 : Method of obtaining @Version value. Available via NucleusJPAHelper
jpa-spec-76 : Allow specification of null handling in ORDER BY. Provided in jakarta.persistence-3.0.0.jar for Criteria and also in JPQL string-based
jpa-spec-77 : EMF should implement AutoCloseable. Done
jpa-spec-81 : @Version Support for Temporal Types. Done
jpa-spec-85 : Metamodel methods to get entity by name. Provided in jakarta.persistence-3.0.0.jar
jpa-spec-86 : Allow multiple level inheritance strategy. Not explicitly done but we do this for JDO so likely mostly there
jpa-spec-100 : Allow an empty collection_valued_input_parameter in an "IN" expression. Already works like this
jpa-spec-102 : JPQL : DATE/TIME functions. Done, with Criteria changes provided in jakarta.persistence-3.0.0.jar
jpa-spec-103 : JPQL : Allow use of parameter in more than just WHERE/HAVING. Done
jpa-spec-105 : Allow AttributeConverter to multiple columns. Done but using vendor extension
jpa-spec-107 : JPQL : support subqueries in SELECT. Done
jpa-spec-108 : Path.get(PluralAttribute<X, C, E>) lower bound missing on X. Provided in jakarta.persistence-3.0.0.jar
jpa-spec-111 : Allow side-effect free check whether a named query is available. DN throws IllegalArgumentException and doesn't kill the current transaction.
jpa-spec-112 : EntityGraph generic type incorrect. Provided in jakarta.persistence-3.0.0.jar
jpa-spec-113 : Allow @GeneratedValue on non-PK fields. Provided since JPA 1
jpa-spec-128 : JPQL : Support JOIN on 2 root candidates. Done
jpa-spec-133 : Make GeneratedValue strategy=TABLE value available in PrePersist. Done
jpa-spec-137 : Add methods taking List to Criteria. Provided in jakarta.persistence-3.0.0.jar
jpa-spec-150 : Define requirement of using TransactionSynchronizationRegistry in EE environment. Present since DN v3.x
jpa-spec-151 : GenerationType.UUID. Provided in jakarta.persistence-3.0.0.jar. Supported since DN 2.x
jpa-spec-152 : Native support for UUID class. Supported since DN 2.x
jpa-spec-163 : Support for java.time.Instant. Supported since DN 4.x
jpa-spec-167 : preUpdate is fired and always has been.
jpa-spec-169 : root.get() does not add a join, and neither should it.
jpa-spec-171 : round() is included in jakarta.persistence-3.0.0.jar. Supported from DN 5.2.x.
jpa-spec-207 : Allow @Convert usage on id attributes. Supported since DN 4.x.
jpa-spec-237 : Auto-Quote database identifiers to avoid use of SQL keywords. Supported since DN 1.x.
jpa-spec-297 : Support for "SELECT ... AS identifier1, ... AS identifier2" in JPQL constructor expressions. Supported from DN 6.x
jpa-spec-316 : math functions in queries. Supported since a long time ago.
jpa-spec-326 : CriteriaBuilder avgDistinct,sumDistinct,minDistinct,maxDistinct. Supported from DN 6.x.

datanucleus-api-jakarta's People

Contributors

andyjefferson avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

datanucleus-api-jakarta's Issues

Support @Index.columnList potential use of ASC|DESC

Jakarta Persistence allows users to provide a hardcoded string of the columns to use in an INDEX (rather than just defining the members/columns). This potentially allows use of specification of the ordering of columns in an index (which datanucleus-rdbms supports).

Support jakarta-315

Add these methods in CriteriaBuilder.SimpleCase

      /**
        * Add a when/then clause to the case expression.
        * @param condition  "when" condition
        * @param result  "then" result value
        * @return simple case expression
        */
       SimpleCase<C, R> when(Expression<? extends C> condition, R result);

       /**
        * Add a when/then clause to the case expression.
        * @param condition  "when" condition
        * @param result  "then" result expression
        * @return simple case expression
        */
       SimpleCase<C, R> when(Expression<? extends C> condition, Expression<? extends R> result);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.