Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [dali-dev] JPQL query generation?

Hi Shaun,

Thanks for the feedback. You've certainly convinced me of the virtues of object-based JPQL queries :) It sounds as if I definitely want to avoid SQL queries if there's no real reason to use them.

That said, when you mentioned JPQL support is on the feature backlog for the future; do you think that support would likely entail some sort of query builder, or something along those lines?

Thanks
Tom

Shaun Smith wrote:
Hi Tom,


There isn't a visual query builder in Dali but JPQL support is on the feature backlog.

I really wouldn't recommend SQL queries. They're there as a last resort. You lose a number of advantages of JPA including encapsulation of the data model. You'll be coupling your code (queries) to the data model. Coupling should be limited to your mappings. Mappings can adapt to data model changes (and Dali will detect them), and your queries can continue to work without change since you're querying on the object model. Also, JPA persistence providers parse JPQL and can do things like avoid database round trips by using a cache. A primary key query is an obvious one. If what you want is in the cache and you know it's reliable why go to the database? When using SQL your provider will just pass it along and process the results so you lower the value of the cache. The big issue IMHO is the unnecessary coupling of queries to the data model and the brittleness it introduces. I've seen database migrations from DB/2 to Oracle of two applications in a workflow, one using TopLink, one using direct SQL. The SQL based application was way more expensive to port. They had to go over every line of SQL whereas the TopLink based application required the mappings adjusted (minimally I might add) and the application ran. Theory is nice but seeing it play out in real life made the advantage of object based queries concrete.

   Shaun


Back to the top