Hi folks
Just a general question on Hibernate usage.
We are starting up a new Spring-based project at my company and there's a good chance that, due to the good things team members have heard about the product, we are going to be using Hibernate. The issue is that the one of the senior developers in the team has some rather old-fashioned ideas about database design and is insisting that we adhere to certain practices. I'm worried that these practices won't go very well with the Hibernate approach.
The two practices he insists on are:
- Use of stored procs for CUD operations and use of views for R operations
- Use of natural keys on all tables
After reading much of the Java Persistence with Hibernate book, I'm worried that these approaches are slightly out of date and that Hibernate only accomodates for them in order to be compatible with legacy databases. If we go with these approaches, I reckon we will (at best) cause ourselves a lot more work than is necessary, and (at worst) risk jeaporising Hibernate's performance.
His main argument for the use of stored procs is security. He claims that if we do not enforce a layer of security around our database tables, we are vunerable to inconsistencies in our data or even malicious attacks. Also, if another application was to use our database in the future and they are not using Hibernate, should they be allowed a free-reign on the database?
Would anyone out there have any advice for me concerning this? Are there any good reasons not to proceed as he is insisting? If so, what are the arguments against using stored procs and natural keys?
Many thanks in advance
|