当前位置: 首页 > 面试题库 >

如何在Eclipse中使用Hibernate Tools生成DAO?

百里泓
2023-03-14
问题内容

我正在使用:Eclipse Java EE IDE Web开发人员版本:靛蓝发行

使用hibernate工具,我是第一次在Eclipse中hibernate,因此我学习了如何配置hibernate并生成带有注释的POJO(我认为它比.xml更好)。

因此,在生成我的POJO和DAO之后,我尝试进行插入,但是对我的实体管理器启动了“空点异常”,这就是hibernate工具生成dao类的方式:

尝试使用生成的DAO:

public static void main(String[] args) {
// TODO Auto-generated method stub
    User user = new User();
    user.setEmail("valter@brainset.com.br");
    user.setPassword("123456");
    user.setReputation(0);

    DaoUser daoUser = new DaoUser();
    daoUser.persist(user);
}

DAO生成:

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;
        }
    }
}

我认为我在配置过程中一定做错了。我应该如何正确设置我的班级和刀道?


问题答案:

您如何向实体经理注入资金?从外观上看,您正在尝试在SE中运行企业应用程序。

如果确实需要在SE中运行它(因此使用“ main”方法),则需要以某种方式引导持久性引擎。

我通常向实体管理器提供设置器或提供抽象获取器。从那里,您可以执行以下操作:

    _entityManagerFactory = Persistence.createEntityManagerFactory( "myJDBC" );
    _entityManager = _entityManagerFactory.createEntityManager();

    UserHome userHome = new UserHome();
    userHome.setEntityManger( _entityManager );

您还需要一个peristence.xml文件,该文件的持久性单元必须与最终调用“ myJDBC”的内容匹配。

我希望这有帮助。

编辑#1

我认为这里有一个例子可以帮助您。这是一个包含JPA,Toplink和MySQL的helloworld,尽管MySQL部分无关紧要,但您可以根据需要切换驱动程序。

编辑#2

还有一个例子这里是使用Hibernate只(没有这么多JPA)。

编辑#3

我认为企业Eclipse工具中的hibernate工具的输出是针对于此的:企业Java。话虽这么说,要用上拥有的东西并在EE中运行它要容易得多。这并不是说您 不能
在SE中运行它,只是更具挑战性。

关于这一点,每当我在不使用JPA的SE中使用hibernate模式时,我都会使用Spring对其进行扩充-
这样可以大大减轻负载。在您开始使用它之前,我不会担心这一点,但是一旦您学习了有关hibernate和/或JPA的一些课程,我便考虑考虑一下。



 类似资料:
  • 本文向大家介绍如何在Eclipse中编写,生成和使用Javadoc?,包括了如何在Eclipse中编写,生成和使用Javadoc?的使用技巧和注意事项,需要的朋友参考一下 要为您的项目生成Java文档,您需要编写有关字段,方法或类的必需信息。 然后按照以下步骤生成文档- 步骤1-打开eclipse,选择选项项目→生成Javadoc。 步骤2-从Java安装目录的bin文件夹中选择javadoc.e

  • 问题内容: 有没有办法在Eclipse中生成Javadoc注释?如果是这样,那是什么? 问题答案: 对我来说,还是- - (或- - 在Mac)的方法效果最好。 我不喜欢看到源代码中的Javadoc注释已自动生成并且尚未更新为真实内容。就我而言,此类javadocs仅仅是浪费屏幕空间。 IMO,最好在您填充细节时一一生成Javadoc注释框架。

  • 我尝试使用以下评论安装java doc,但出错了。 sudo apt-get install sun-java6-doc正在读取包列表…完成构建依赖树 正在读取状态信息…完成E:无法找到包sun-java6-doc 请帮我解决问题。

  • 是否有任何特殊的配置可以让eclipse生成Mapstruct映射器?目前,它们尚未生成。 它们确实在gradle构建中生成,但是我不能让它们生成,所以我可以在开发中使用它们。 我把这个添加到我的build.gradle: 我还为MapStruct添加了eclipse插件(尽管我相信这实际上不是必需的??) 然后我去了那个项目 但是。apt_generated是空的,我错过了什么? 我正在使用:

  • 我有一个由许多maven项目组成的应用程序。我在日蚀中工作。一些项目使用Maven插件为Web服务等生成存根类。 当我将项目导入到新的工作区时,我必须发出maven generate sources命令,然后附加源文件夹以在每个项目上构建路径。我处理的应用程序有5-6个以上的项目需要这些步骤。 是否有一个插件可以安装在Eclipse中以获取生成的源代码,或者甚至是一个生成源代码并更新构建路径以保存

  • Hibernate Tools 是一个 hibernate 配置文件 pojo 工具。 功能介绍:  1.自动生成hibernate配置文件 和 javaBean,以及HTML表单文件;  2.支持读取数据库表和字段的中文注释信息;  3.可以选择数据库;  4.可以选择表,hibernate 主键策略;  5.可以设置生成的 javaBean 的 package 路径;  6.可选择生成的文件保