Author: doebele
Date: Sun Mar 20 10:13:03 2022
New Revision: 1899080

URL: http://svn.apache.org/viewvc?rev=1899080&view=rev
Log: (empty)

Modified:
    empire-db/site/pages/project.html

Modified: empire-db/site/pages/project.html
URL: 
http://svn.apache.org/viewvc/empire-db/site/pages/project.html?rev=1899080&r1=1899079&r2=1899080&view=diff
==============================================================================
--- empire-db/site/pages/project.html (original)
+++ empire-db/site/pages/project.html Sun Mar 20 10:13:03 2022
@@ -141,8 +141,8 @@
                                        and there are many available products 
such as <a class="extern" target="_blank" 
href="https://hibernate.org/";>Hibernate</a>, <a class="extern" target="_blank" 
href="https://openjpa.apache.org/";>OpenJPA</a>, <a class="extern" 
target="_blank" href="https://cayenne.apache.org/";>Cayenne</a> and <a 
class="extern" target="_blank" 
href="https://en.wikipedia.org/wiki/List_of_object%E2%80%93relational_mapping_software#Java";>more</a>.</p>
                                        
                                        <p class="optional">But OR-Mapping has 
many limitations by design. As it largely shields you from SQL, you have little 
control over statements other than over the Where part of the query. On the 
Java side you are largely limited to work with Entity objects rather than 
specific query results in an "All or Nothing" manner. 
-                                       Maintaining Annotations or Mapping 
files is a pain and requires special tools. For Relations you need to decide 
between Lazy and Eager fetching which - no matter what you pick - will be good 
sometimes and bad another. Metadata access is cumbersome and minimalistic.
-                                       And the query APIs provided, are 
unintuitive and largely limited to simple entity queries (with no control over 
the "select" part) and struggling with ad hoc joins, subqueries and anything 
that has to do with aggregation. Not to mention Union and Intersection queries. 
In the Coding Horror blog Object-Relational Mapping has even been called the <a 
class="extern" target="_blank" 
href="https://blog.codinghorror.com/object-relational-mapping-is-the-vietnam-of-computer-science/";
 target="_blank">Vietnam of Computer Science</a>
+                                       Maintaining Annotations or Mapping 
files is a pain and requires special tools. For Relations you need to decide 
between Lazy and Eager fetching which - no matter what you pick - will be 
sometimes good and sometimes bad. Metadata access is cumbersome and 
minimalistic.
+                                       Furthermore, the query APIs provided 
are unintuitive and largely limited to simple entity queries (with no control 
over the "select" part) and they struggle with ad hoc joins, subqueries and 
anything that has to do with aggregation. Not to mention Union and Intersection 
queries. In the Coding Horror blog Object-Relational Mapping has even been 
called the <a class="extern" target="_blank" 
href="https://blog.codinghorror.com/object-relational-mapping-is-the-vietnam-of-computer-science/";
 target="_blank">Vietnam of Computer Science</a>
                                        </p>
                
                                        <p class="optional">Yes - in fairness - 
modern ORMs have found ways to mitigate some of the conceptual shortcomings and 
provide "workarounds", but this comes at a price. Just take a look at examples 
for <a class="extern" target="_blank" 
href="https://stackoverflow.com/questions/15990141/how-to-make-a-criteriabuilder-join-with-a-custom-on-condition";>getCriteriaBuilder()</a>
 or <a class="extern" target="_blank" 
href="https://mikekowdley.medium.com/hibernate-criteriaquery-fetching-a-partial-entity-and-child-with-joins-984987545dd2";>createTupleQuery()</a>
 and it will make your head spin. Seriously JPA?</p>
@@ -153,10 +153,10 @@
                                        <p><span class="bold">Empire-db</span> 
however, is a different type of fish. It is not an OR-Mapper in the classical 
sense, as it does not even attempt to rely on traditional Java Beans (POJOs) 
for data interchange, yet providing equivalent features as ORMs do. 
                                        And it generally relies more on the 
developer to actively do something rather than doing things automatically in 
the background.</p>
                                        
-                                       <p class="optional">Even though is 
supports traditional Java Beans (POJOs), this is not the preferred approach. 
Instead it provides Records which essentially are "Dynamic Beans" where you 
have a generic getter / setter which takes the column as parameter. 
+                                       <p class="optional">Even though it 
supports traditional Java Beans (POJOs), this is not the preferred approach. 
Instead it provides Records which essentially are "Dynamic Beans" where you 
have a generic getter / setter which takes the column as parameter. 
                                        The record can be loaded as an entire 
table row, or partially with selected columns or even combine fields from 
different tables as a "logical" record.                                 
-                                       But the real advantage comes with the 
ability not just to control all aspects of your SQL statements but also to do 
that in a simple and intuitive way so that you are actually capable of using 
everything a modern DBMS has to offer, such as various column functions, joins 
of any type (inner, outer, cross) with any kind of join restriction, joins on 
subqueries, aggregation, and so on, 
-                                       and all that without having to fall 
back to SQL in String literals or the need for getting a special University 
degree.</p>
+                                       But the real advantage comes with the 
ability not just to control all aspects of your SQL statements, but also to do 
that in a simple and intuitive way so that you are actually capable of using 
everything a modern DBMS has to offer, such as various column functions, joins 
of any type (inner, outer, cross) with any kind of join restriction, joins on 
subqueries, aggregation, and so on. 
+                                       All that without having to fall back to 
SQL in String literals or the need for getting a special University degree.</p>
                                                                
                                        <p class="optional">The advantage 
becomes especially apparent in scenarios with large data models, complex 
relations, sophisticated query demands. And this is also where metadata becomes 
as - or sometimes even more - important than the actual data itself. With 
Metadata you can achieve so much, from writing generic functions to building or 
improving user interfaces.
                                        <!--                                    
@@ -178,7 +178,7 @@
 
                        <h1>Can your ORM do that?</h1>
                        
-                       <p>Compare what your current data persistence solution 
with what Empire-db has to offer.</p>
+                       <p>Compare your current data persistence solution with 
what Empire-db has to offer.</p>
                        
                        <h3>Building queries</h3>
                        <p>The query building engine is the heart of Empire-db. 
Empire-db can build DQL, DML and DDL statements in the "flavour" of the DBMS 
used.</p>
@@ -663,9 +663,9 @@ log.<span class="func">info</span>(<span
                <div class="content">
                        <h1>Final word</h1>
                        <p>In software development things get complicated. 
Sometimes sooner, sometimes later, but they inevitably do.<br/> 
-                       What was once meant to be a "Simple Database", may well 
turn into a Monster over the years, with ever more tables, views, columns, 
data.</p>
+                       What was once meant to be a "Simple Database", may well 
turn into a monster over the years, with ever more tables, views, columns, 
data.</p>
 
-                       <p>So how do you tame the Monster?</p>
+                       <p>So how do you tame the monster?</p>
 
                        <p>We believe the key to that are Simplicity and 
Flexibility.</p>
                        <ul class="bullets">


Reply via email to