I have been using JPA and Hibernate as the persistence provided in JBoss for some time. I cannot fault the specification or the Hibernate persistence provider in any way, as far as my implementations go.
However, I have recently joined a team where it is insisted that HIBERNATE, or any other persistence provider will not DO. The primary reasons are; Hibernate takes away the control they have on the SQL, and the underlying database. JPA according them is a problem because your database is managed in code. If you add Views, Stored Procedures, triggers, etc later it gets lost.
Their solution is using DAO and JDBC. The reasoning behind this is you have absolute control over your DB design, DB Access and SQL Queries.
It is up to me to convince them JPA serves the purpose. The moment I mention Hibernate, I see the "not-interested" look cross their faces.
Talking about patterns, service abstraction and layered design draw nothing but blanks. The impression one gets is one where peoply think you are adding complexity to what they consider should be a straight forward, no-hassle, just code it and get it done with, problem domain. Actually they were quit clear on it that some architects just like to complicate things with highly unprobable what-if's.
In my investigations I see that JPA can actually be used without Hibernate but I cannot find any examples out there where it is tried. All examples go back to Hibernate, Toplink, and openJPA.
Can you refer me to some examples that I can use as a Proof of Concept to get them convinced otherwise. My requirements are:
1. Build a JPA implementation without Hibernate, TopLink, or OpenJPA. 2. I must be able to change a column type without losing data (drop table, etc) 3. I must be able to add Views, Triggers, etc without loss at any time.
Without benchmarks I shall probably never persuade them.