2009-11-17 8 views
0

Peut-être une question simple (lire stupide). Je suis en phase de conception d'une application web - Spring MVC standard et je prévois d'utiliser le support Spring DAO (jdbctemplate - no hibernate & no ibatis etc).Objets de domaine Java

Je modélise actuellement mes objets de données pour le SGBDR. Quelle est la meilleure pratique pour les types de données? Disons que ma clé primaire d'une table est numérique - Est-ce que je modélise cela dans mon objet comme long ou long? Un problème/avantage de l'un sur l'autre?

Gurus?

Répondre

2

La longueur est nulle. Ainsi, un objet avec un identifiant nul (en Java) peut représenter un objet qui n'est pas (encore) conservé. Vous pouvez configurer explicitement Hibernate pour le traiter de cette façon, et si vous n'utilisez pas Hibernate, c'est toujours une bonne pratique de vous donner des méthodes DAO un moyen de savoir si un objet particulier est déjà dans la base de données ou non.

+0

+1 En général, j'ai toujours tendance à utiliser les classes wrapper sur des objets de domaine comme Boolean, Long, etc. Quand l'un d'eux devient plus tard nul, il est beaucoup plus facile de le refactoriser. – NickDK

+0

Nice! C'était la perspective manquante je crois. Merci les gars! J'ai un peu raté ce raisonnement. – AAK

0

Je préfère avoir un type "identité" qui est sérialisable (comparable, clonable, etc.) et quelle représentation de chaîne est utilisée, par ex. pour créer des URL. Seule l'implémentation DAO connaît le type exact. Cela pourrait être long ou cela pourrait être une clé primaire combinée. Au-dessus de la couche d'accès aux données, l'application traite uniquement l'identité.

Si l'identité est nulle, l'objet n'est pas conservé (aucune identité n'est affectée via le magasin de persistance).

Questions connexes