gpt4 book ai didi

hibernate - Flex Hibernate - 使用 Flex/Mate/和 BlazeDS 设置 EntityManager 和 SessionFactory

转载 作者:行者123 更新时间:2023-11-28 22:15:14 24 4
gpt4 key购买 nike

我正在使用 Mate、Blaze DS、Tomcat 服务器创建一个 Flex 项目。所有这些似乎都有效。甚至我的 Hibernate 调用也能正常工作。但是,它们似乎没有以正确的方式创建。我在 java 中使用以下代码块登录用户:

public AbstractUser login(String username, String password){ 
//Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
//SessionFactory sessionFactory= cfg.buildSessionFactory();
SessionFactory sessionFactory;
sessionFactory = new AnnotationConfiguration()
.addAnnotatedClass(AbstractUser.class)
.addAnnotatedClass(CourseSession.class)
.addAnnotatedClass(Course.class)
.addAnnotatedClass(Message.class)
.addAnnotatedClass(Material.class)
.addAnnotatedClass(TopicSession.class)
.addAnnotatedClass(Step.class)
.addAnnotatedClass(Section.class)
.addAnnotatedClass(Topic.class)
.addAnnotatedClass(Subtopic.class)
.configure("hibernate.cfg.xml")
.buildSessionFactory();
sessionFactory.openSession();

emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT);
em = emf.createEntityManager();
logger.debug("** username:"+username);
logger.debug("** password:"+password);

Query q = em.createNamedQuery("users.byUnPass");
q.setParameter("username", username);
q.setParameter("password", password);
AbstractUser user;

try{
user = (AbstractUser) q.getSingleResult();
}catch(javax.persistence.NoResultException e){
user = new AbstractUser();
}

return user;
}

这种方法有两个问题1. entityManager 和 SessionFactory 都需要在按下第一个按钮时自行初始化,造成相当长的时间滞后,等待它全部初始化。2. 我阅读了有关 hibernate 的 SessionFactory 的文档:

We also recommend a small wrapper class to startup Hibernate in a static initializer block, known as HibernateUtil. You might have seen this class in various forms in other areas of the Hibernate documentation.

现在我有了关于如何编写类的文档,但是我应该将它放在我的 flex/java 文件格式中的什么位置?目前在我的 Java 文件结构中:com 飞马座 tms-放置第一级服务 Material - 放置我正在使用的 Material pojo此外,设置 SessionFactory 以加快 EntityManager 的必要条件 - 因为我注意到每当我有一个打开 EntityManager 然后关闭它的函数时,初始化它需要时间滞后。

更普遍的问题是,如何以优化的方式设置我的 SessionFactory 和 EntityManager?

提前致谢。

托德

最佳答案

你在使用 Spring Framework ?如果没有,我建议你认真考虑一下。

它提供Blaze DS integration以及HibernateJPA一体化。您将在上下文中定义所有内容,然后让 Spring 为您引导它。 EntityManager 实例将直接注入(inject)到您的服务/DAO 中。

关于hibernate - Flex Hibernate - 使用 Flex/Mate/和 BlazeDS 设置 EntityManager 和 SessionFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1457732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com