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

找不到休眠属性

丁文轩
2023-03-14
问题内容

我们将Java
blazeedshibernate与flex项目集成在一起。首先,我们在eclipse中测试了纯Javahibernate,并且执行良好。但是,当我们将相同的东西放入tomcat中进行火焰集成时,它会显示以下错误,这是唯一的错误。

Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment <clinit>
INFO: Hibernate 3.2.6
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment <clinit>
INFO: hibernate.properties not found
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: Bytecode provider name : cglib
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Environment <clinit>
INFO: using JDK 1.4 java.sql.Timestamp handling
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Configuration configure
INFO: configuring from resource: /hibernate.cfg.xml
Jan 24, 2013 11:31:31 AM org.hibernate.cfg.Configuration getConfigurationInputSt
ream
INFO: Configuration resource: /hibernate.cfg.xml

这是hibernate.cfg.xml(要识别是否未找到hibernate.cfg.xml,我通过删除.cfg.xml的DOCTYPE进行测试,然后显示tomcat输出,说未找到根元素…这意味着它能够找到hibernate.cfg.xml(我认为)

 <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="connection.url">jdbc:mysql://localhost/test</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

        <property name="show_sql">true</property>

        <property name="format_sql">true</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

         <property name="current_session_context_class">thread</property>
        <mapping class="com.model.User" />
        <mapping class="com.model.UserDetails" />
        <mapping class="com.model.LoanDetails" />
        <mapping class="com.model.BorrowerDetails" />

    </session-factory>
</hibernate-configuration>

这是hiberutil.java

public class HibernateUtil
{



    private static  SessionFactory sessionFactory=configureSessionFactory();
    private static ServiceRegistry serviceRegistry;


    private static SessionFactory configureSessionFactory() throws HibernateException {
        Configuration configuration = new Configuration();
        configuration.configure();
        serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();        
        sessionFactory = configuration.buildSessionFactory(serviceRegistry);
        return sessionFactory;
    }
    public static SessionFactory getSessionFactory()
    {
        return sessionFactory;
    }
}

为什么显示错误?控件来自flex端并执行java方法的起点…但是当涉及到hibernate东西执行时,它在tomcat中显示此错误…

但是,当我将java + hibernate作为纯Java应用程序执行时,它执行得很好。

有谁能够帮助我?

谢谢

编辑1
@Andremoniy建议的修改后,将.cfg.xml放入src文件夹中,在这里也在eclipse中,它正在工作,但在带有flex的tomcat中不起作用

出现以下错误

org.hibernate.MappingException: An AnnotationConfiguration instance is required
to use <mapping class="com.model.User"/>
        at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.jav
a:1606)
        at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.jav
a:1561)
        at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1540)
        at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1514)
        at org.hibernate.cfg.Configuration.configure(Configuration.java:1434)
        at org.hibernate.cfg.Configuration.configure(Configuration.java:1420)
        at com.sample.HibernateUtil.configureSessionFactory(HibernateUtil
.java:26)
        at com.sample.HibernateUtil.<clinit>(HibernateUtil.java:20)
        at com.sample.App.checkUser(App.java:34)

问题答案:

我想问题在于您提到的配置代码.hbm.xml可能无法在Tomcat中使用。

我认为它需要AnnotationConfiguration对象。我猜您由于Annotationconfiguration对象创建不起作用而使用了此代码。

最好使用pom创建一个mavenhibernate项目,并将war文件导出到Tomcat(更改为Annotationconfiguration)。还可以使用log4j
jar通过调试输出显示Tomcat执行的详细信息,以便Tomcat输出将打印所有执行流程。



 类似资料:
  • 问题内容: 我正在建立一对多的关系。所以,我有一个父母和一个孩子。级联属性设置为全部。 我想知道我们是否考虑以下代码: Q1)如果父级拥有该关系,如,对于父级inverse = false,那么是否会在数据库中更新子级元素? Q2)如果孩子拥有关系,如,对于父inverse = true,则是否会在数据库中更新子元素添加? Q3)在是否可以看到更新的方面,谁拥有关联关系对上述代码没有影响? 非常感

  • 问题内容: 我有一个Spring和Hibernate3在生产中运行良好的应用程序。以下是Spring的applicationContext.xml中会话工厂的配置 生产正常。 现在,对于另一个项目,我们正在迁移到Hibernate4。我们使用org.springframework.orm.hibernate4。*包中的Hibernate 4的SessionFactory,TransacionMan

  • 问题内容: 我在映射类的嵌入式属性时遇到麻烦。我创建了一些类,这些类与我试图说明的类相似。基本上,我有一个使用继承的@Embeddable类层次结构。顶级类“零件号”仅具有一个属性,扩展类未向“零件号”类添加任何属性,它们仅添加了一些验证/逻辑。 这是我的意思: 部分 零件号 福特PARTNUMBER 高贵的零件编号 当然这是行不通的,因为Hibernate忽略了继承层次结构,并且不喜欢PartN

  • 问题内容: 假设我有类似的课程: 我想在A上过滤标准,在不同的子类属性上过滤两个过滤器,例如: 我想要做的是使用“或”子句将criteriaB和criteriaC组合在一起,例如: 我该怎么做?我在这里对API稍作绊脚石。 问题答案: 使用别名代替嵌套条件:

  • 问题内容: 警告 :请在下面查看我自己的答案。此问题是由10.2.0.4之外的类路径中存在的旧Oracle驱动程序引起的。问题解决了。这个问题的其余部分留给后代。 我一直在反对以下观点。这是从我的应用程序代码中提取的一个简单的POJO: 有一个String属性和一个CLOB列。当内容很短时(例如“ hello world”),它会持续存在。对于更长的字符串,我得到以下异常: 我将Hibernate

  • 问题内容: 我有实体类A和C。它们正在映射表tblA和tblC,并且它们之间具有多对多关系,而tblB则在它们之间进行映射。tblB包含A_ID,C_ID和SetDate,最后一个是它的设置日期,因此是关系的属性。我的问题是,如何最好地映射此属性?目前,它们尚未映射,如下所示: A: C: 我应该如何从中获取tblB.SetDate? 干杯 尼克 问题答案: 据我所知, 不可能 以这种方式进行映射