I’m contemplating about what has happened in the ISO / IEC SQL standard during the last 15 years. We’ve had quite a few new features added to our beloved SQL language. Check this out:
- With the ISO/IEC SQL:1999 standard, we could take advantage of grouping sets and (recursive) common table expressions.
- With the ISO/IEC SQL:2003 standard, we’ve had the very sophisticated window functions and the MERGE statement.
- With the ISO/IEC SQL:2008 standard, we could perform partitioned JOINs.
- With the ISO/IEC SQL:2011 standard, we can now interoperate with temporal databases (implemented so far in IBM DB2 and Oracle).
And obviously, there’s much more goodness hiding in the almost unreadable 1423-page-long documents.
But JPA…
Now, does any of these awesome features appear in JPA? Nope. Will the next SQL standard introduce new awesome features? I’m sure it will! I could imagine that the Oracle / CUBRID
CONNECT BY clause, or the Oracle / SQL Server
PIVOT / UNPIVOT clauses are good candiadates for standardisation. I’d go absolutely nuts if Oracle’s crazy
MODEL clause would make it, too.
While exciting things happen at these ends, the
ORM impedance mismatch will further deepen and confirm
Charles Humble’s recent findings from the QCon, where he’s observed an increasing number of people who are unhappy with popular ORMs’ ever increasing complexity. A complexity example:
NamedEntityGraph!
@NamedEntityGraph(
name="ExecutiveProjects"
attributeNodes={
@NamedAttributeNode("address"),
@NamedAttributeNode(
value="projects",
subgraph="projects"
)
},
subgraphs={
@NamedSubgraph(
name="projects",
attributeNodes={
@NamedAttributeNode("properties")
}
),
@NamedSubgraph(
name="projects",
type=LargeProject.class,
attributeNodes={
@NamedAttributeNode("executive")
}
)
}
)
Man, did this really have to be added to JPA? Stack Overflow cannot display that many annotations on a single screen! Well, if this is JEE’s answer to SQL’s recent evolutions, then I’m glad I don’t do too much JEE these days. I’m doing SQL, which is an awesome language if let running loose.
Like this:
Like Loading...
Published by lukaseder
I made jOOQ
View all posts by lukaseder