Comment générer de DAO avec Hibernate Tools dans Eclipse?
Je suis en utilisant :
Eclipse Java EE IDE Développeurs Web
version:Indigo
avec hibernate tools, je suis nouveau sur hibernate sous Eclipse, j'ai donc apprendre comment configurer la mise en veille prolongée et générer le POJO avec des annotations (qui je pense est mieux que .xml).
Donc après générer mon POJO et de DAO, j'essaie de faire une insertion, mais le lancement d'un "null pointer exception" à mon gestionnaire d'entité, c'est comment hibernate tools est de générer les classes dao:
D'essayer d'utiliser le DAO généré:
public static void main(String[] args) {
//TODO Auto-generated method stub
User user = new User();
user.setEmail("[email protected]");
user.setPassword("123456");
user.setReputation(0);
DaoUser daoUser = new DaoUser();
daoUser.persist(user);
}
DAO généré:
package com.example.pojo;
//Generated 30/08/2011 20:43:29 by Hibernate Tools 3.4.0.CR1
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* Home object for domain model class User.
* @see com.example.pojo.User
* @author Hibernate Tools
*/
@Stateless
public class UserHome {
private static final Log log = LogFactory.getLog(UserHome.class);
@PersistenceContext
private EntityManager entityManager;
public void persist(User transientInstance) {
log.debug("persisting User instance");
try {
entityManager.persist(transientInstance);
log.debug("persist successful");
} catch (RuntimeException re) {
log.error("persist failed", re);
throw re;
}
}
public void remove(User persistentInstance) {
log.debug("removing User instance");
try {
entityManager.remove(persistentInstance);
log.debug("remove successful");
} catch (RuntimeException re) {
log.error("remove failed", re);
throw re;
}
}
public User merge(User detachedInstance) {
log.debug("merging User instance");
try {
User result = entityManager.merge(detachedInstance);
log.debug("merge successful");
return result;
} catch (RuntimeException re) {
log.error("merge failed", re);
throw re;
}
}
public User findById(Integer id) {
log.debug("getting User instance with id: " + id);
try {
User instance = entityManager.find(User.class, id);
log.debug("get successful");
return instance;
} catch (RuntimeException re) {
log.error("get failed", re);
throw re;
}
}
}
Je pense que je dois être en train de faire quelque chose de mal dans le processus de configuration.
Comment dois-je configurer correctement mes cours et de dao ?
OriginalL'auteur Valter Silva | 2011-08-31
Vous devez vous connecter pour publier un commentaire.
Comment vous injecter dans votre gestionnaire d'entité? Par les regards de celui-ci, vous essayez d'exécuter une application d'entreprise en SOI.
Si vous avez vraiment besoin pour s'exécuter en tant que tel (d'où le "principal" méthode), vous aurez besoin pour démarrer le moteur de persistance d'une certaine manière.
J'ai l'habitude de fournir un setter pour le gestionnaire de l'entité ou de fournir un résumé de lecture. De là, vous pouvez faire quelque chose comme ceci:
Vous aurez également besoin d'un peristence.xml fichier avec une unité de persistance de correspondance quelle que soit vous vous retrouvez l'appel "myJDBC".
J'espère que cette aide.
EDIT #1
Il est un exemple ici qui je pense va vous aider. C'est un helloworld avec JPA, Toplink et MySQL, si la partie MySQL n'a pas d'importance, vous pouvez passer votre permis si besoin est.
EDIT #2
Il est aussi un exemple ici qui utilise hibernate uniquement (pas tellement JPA).
EDIT #3
Je pense que la sortie de l'hibernation des outils dans l'entreprise de l'Éclipse de l'outillage est orientée vers: java enterprise. Cela étant dit, il est beaucoup plus facile de prendre ce que vous avez et de l'exécuter dans les EE. Ce n'est pas de dire que vous ne peut pas l'exécuter en SOI, juste que c'est un peu plus difficile.
Sur cette note, chaque fois que j'utilise hibernate dans SE sans JPA, je l'augmenter avec le Printemps - cela prend la charge de travail de manière significative. Je ne serais pas s'inquiéter à ce sujet jusqu'à ce que vous obtenir ce travail, mais j'avais envisager de le regarder une fois que vous avez appris quelques leçons au sujet de la mise en veille prolongée et\ou JPA.
J'ai inclus un extrait qui montre une façon vous pouvez obtenir une entité gestionnaire de l'instance. Vous devez également ajouter un setter pour votre UserHome classe.
comment puis-je créer un persistence.xml fichier ? où dois-je les mettre ? connais-tu un tutoriel pour qui ?
Je suis nouveau sur Hibernate, lorsque j'utilise jboss plugin d'eclipse pour générer des DAO pour mes tables, j'obtiens le code avec SessionFactory , Mais j'ai besoin est l'EntityManager , n'importe qui Peut aider comment choisir ?
OriginalL'auteur javamonkey79