-
Notifications
You must be signed in to change notification settings - Fork 59
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
extract JPQL to the new separate document #603
Comments
This would be great. |
So the steps involved would be those described in the Creation Review of the JESP:
Footnotes
|
@lukasj if it's fine by you, I will make a start on this process. |
@lukasj @starksm64 how does this look to you guys: Project Proposal: Jakarta Query LanguageObject-oriented query languagesA data structure in an object-oriented language is a graph of objects connected by unidirectional object references, which may be polymorphic. Some non-relational databases support similar representations. Relational databases represent relationships between entities using foreign keys, and therefore SQL has no syntactic construct representing navigation of an association. Similarly, inheritance and polymorphism can be easily represented within the relational model, but are not present as first-class constructs in the SQL language. An object-oriented query language is a dialect of SQL with support for associations and subtype polymorphism. Historical backgroundObject-oriented dialects of SQL have existed since at least the early 90s. The Object Query Language (OQL) was an early example, targeting object databases, but was never widely used, since object databases were themselves not widely adopted. Hibernate Query Language (HQL) and the Enterprise JavaBeans Query Language (EJB-QL) were both introduced in 2001 as query languages intended for use with object/relational mapping. HQL was widely adopted by the Java community and was eventually standardized as the Java Persistence Query Language (JPQL) by JSR-220 in 2006. JPQL has been implemented by at least five different products and is in extremely wide use today. On the other hand, since JPQL is defined as part of the Jakarta Persistence specification, it has not been reused outside the context of object/relational mapping in Java. More recently, Jakarta Data 1.0 introduced the Jakarta Data Query Language (JDQL), a strict subset of JPQL intended for use with non-relational databases. ProposalThe Jakarta Query Language would be defined in a separate specification, and reused by Jakarta Persistence and Jakarta Data. It would define at least:
Thus, the new specification would replace chapter 4 of Jakarta Persistence, and chapter 5 of Jakarta Data. This work would also involve clarifying the semantics of JPQL, which are currently somewhat underspecified. New features of JPQL, currently proposed for inclusion in JPQL 4.0, would instead be specified by the new Jakarta Query Language specification. ScopeThe new specification would define the syntax and semantics of the query language. It would not cover:
|
@starksm64 the Creation Review template requires a link to a specification project ... but there's no instructions on how to set up such a project. |
There needs to be a new project created under the https://projects.eclipse.org/projects/ee4j umbrella project. I'll ask the EE4J PMC what needs to be done. |
The parent operations guide details the steps for creating a new project: I'll start the socialization with the spec committee. |
There are several paths to accomplish this -- If you want to just extract it into a separate specification, you will need to create a TCK (or refactor from the existing), and write the new specification document. |
That's not really enough here. It's not just a question of splitting out JPQL, but of:
Since Jakarta Data shouldn't depend on Jakarta Persistence for its core functionality (and vice versa) it doesn't make sense for this spec to be maintained by either one of the existing projects. Instead it should be maintained by a separate project which takes account of the needs to both consumers (and, potentially, even other future consumers which don't exist today). So I think it makes much more sense to continue down the path we've just started, which is to create a new dedicated project for this work, and invest in the promotion of an interesting new "brand": Jakarta Query. |
...or establish new specification project for Jakarta EE wide Query Language(s), where the Data QL can be core, JPQL a RDBMS extension/superset and possibly another extension for NoSQL DBs
The text was updated successfully, but these errors were encountered: