2012-07-20 2 views
0

J'ai le projet EJB de mon ami qui utilise Hibernate. Je fais mon projet Java avec l'aide de ce projet. Le mien n'est pas un EJB, c'est une application de bureau. J'ai un petit problème de mappage de classe Hibernate, qui est dans le projet de mon ami, quand j'ajoute un nouveau champ (disons varchar) à la base de données, je peux utiliser ce champ dans la classe Java appropriée. Par exemple.Automatisation de tables DB dans des classes Hibernate

Dans la base de données ajouter, telephone_no à la table A. Je peux l'utiliser comme ceci

class A { 
    ....... 
    private String telephoneNo; 

    public String getTelephoneNo(){ 
      return this.telephoneNo; 
    } 


    public void setTelephoneNo(String telephoneNo){ 
      this.telephoneNo = telephoneNo; 
    } 
    ........ 
} 

mais mon projet, je dois utiliser les annotations pour définir le nom de la colonne. Le puzzle est, comment résoudre le nom de la variable?. Je sais en hibernation si le champ de base de données et le nom de variable de classe sont identiques, alors il sera automatiquement mappé, sinon nous devrions annoter ou utiliser xml pour mapper, mais dans ce cas (le projet de mon ami) comment résoudre automatiquement?

Également dans le projet EJB de mon ami, je ne vois aucun mapping de classe, lorsque nous ajoutons une table, alors il mappe automatiquement vers la classe appropriée (je veux dire après avoir ajouté la classe à l'EJB). Mais comment puis-je y parvenir dans mon application Java Desktop?

+0

Il doit y avoir hbm.xml ou des annotations dans vos projets amis pour le mappage. vérifie ça. –

Répondre

0

vous posez beaucoup de questions ici: 1. vous pouvez définir pour hiberner où rechercher des entités. vous pouvez définir pour voir les fichiers jar supplémentaires jar ... (../MyApp.jar see configuration document), mais les classes utilisées comme entités doivent être déclarées par annotation (@entity) ou par mapping xml. 2. pour le nom de la colonne et le nom de la table. hibernate suit la configuration par exception, donc si vous ne donnez pas de nom à une table ou un champ, le nom de la colonne ou le nom de la table sera le même. vous pouvez remplacer le nom par défaut d'hibernate (voir la propriété name = "hibernate.naming_strategy").

+0

merci pour la réponse, j'ai lu le document de configuration mais mon projet n'est pas un EJB, c'est une application de bureau standard, j'ai aussi ajouté une classe et ajouté l'annotation @entity, quand je l'exécute, j'obtiens une exception entité inconnue, mais dans Projet EJB (mon ami) si j'ajoute une table à DB, alors je peux créer une classe dans EJB et l'utiliser sans écrire ou éditer n'importe quel EML. – user1479203

+0

lire ceci - http://binodsuman.blogspot.co.il/2009/10/jpa-example-outside-container-jpa.html vous avez besoin que la classe soit scannée par hibernate –

Questions connexes