I’m developing a Java EE application (JSF + Richfaces + Oracle 10g), and i wanted to use JPA.
But in the end, i didn’t see any advantages of using it, because it’s going to complexify my code.
I found that calling my procedures (stored procedures in my orale DB) is better than using JPA (because i can, for example, change some lines in those procedures without the need to re’compile my “WAR” project every time i have some error + i can use PL/SQL which helps me a lot)
So, i wanted to ask you people, when to use JPA ?
Isn’t making your own queries (you can choose the right ordering for you selects, the columns that you want to select, and not all the columns: because of ORM and the fact that your entities attributes are mapped to the columns of your table, and that oblige you to select all the attributes present in your entity,….)
Is it my method that i used (stored function)
This might be subjective but, personally, I find JDBC typically more verbose, harder to maintain and thus somehow more complex. With an ORM like JPA, you don’t have to write all the CRUD queries, you don’t have to handle the mapping of query results to objects, you don’t have to handle the low level stuff yourself, etc.
This is totally dependent on your definition of “better”. In your case, you might prefer SP because of your development workflow (I don’t run my code in container to setup the persistence part) and because you are comfortable with PL/SQL. But again, personally, I don’t find SP “better”:
Read also Who Needs Stored Procedures, Anyways? (amongst other resource) for more opinions.
When you want to speed-up development, to focus on implementing business code instead of plumbing. And of course, when appropriate.
Did you identify a particular performance problem? Or are you just assuming there will be a problem. To my experience, retrieving more columns than required is most of time not an issue. And if it becomes an issue, there are solutions.