I am writing my persistent classes for a Java EE 6 project.
I am seeking best practices in writing these classes.
For example, i know that adding version field is recommended.
I am waiting for your help. Merci
UPDATE 1:
I am writing classes for an ecommerce: persons, products, reviews ….
That really depends on what are the requests.
Adding fields just because it is “recommended” may hurt performance, as they are mapped to columns at DB.
Maybe your flow does not require “versioning” at all?
What I would like to suggest for you is (if you insist on using JPA/Hibernate) is:
A. Think of your business logic entities – for example, if this is an application for a library, entities may be – Book, Author, Shelf, Room, Librarian, Reader, and so on…
B. Model the relationships between these entities
– For example – a Book may be written by several author. Each other may write several books
Once you’re done with this Java/OOP modelling, move on and intorduce relationships, based on JPA annotations:
For example, for the above book author relationship you will need the @ManyToMany annotation.
At this point you will also need to define what are your primary key columns.
You should also consider whether an entity which is used once per each other entity instance – for example – an Address will be used once per Reader, should be kept in a separate table, having OneToOne annotation, or will you prefer to keep it at the Reader table, using an Embeddable class.
However, the best practice can really change when it comes to the domain of the application, the required performance and the use cases.
I would suggest you to start building/designing your application and ask more specific questions.