bean.xml配置如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
           <!--以注解方式交给spring管理-->
           <context:component-scan base-package="com.lcd"/>
           
           <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
          <property name="driverClass" value="org.gjt.mm.mysql.Driver"/>
          <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/lcd?useUnicode=true&amp;characterEncoding=UTF-8"/>
          <property name="user" value="root"/>
          <property name="password" value=""/>
          <!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
          <property name="initialPoolSize" value="1"/>
          <!--连接池中保留的最小连接数。-->
          <property name="minPoolSize" value="1"/>
          <!--连接池中保留的最大连接数。Default: 15 -->
          <property name="maxPoolSize" value="300"/>
          <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
          <property name="maxIdleTime" value="60"/>
          <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
          <property name="acquireIncrement" value="5"/>
          <!--每60秒检查所有连接池中的空闲连接。Default: 0 -->
          <property name="idleConnectionTestPeriod" value="60"/>
           </bean>
           
           <!--配置单列模式的sessionfactory-->
           <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
               <!--配置数据源-->
           <property name="dataSource" ref="dataSource"/>
           <!--指定hibernate的映射文件-->
           <property name="mappingResources">
          <list>
              <value>com/lcd/bean/Employee.hbm.xml</value>
          </list>
           </property>
           <!--hibernate的属性配置-->
          <property name="hibernateProperties">
        <value>
           hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
           hibernate.hbm2ddl.auto=update
           hibernate.show_sql=false
           hibernate.format_sql=false
        </value>
          </property>
            </bean>
           <!--使用Spring容器管理事务服务-->
           <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
         <property name="sessionFactory" ref="sessionFactory"/>
           </bean>
           <!--使用基于注解方式配置事务 -->
            <tx:annotation-driven transaction-manager="txManager"/>           
</beans>
Employee.hbm.xml的配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
      "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.lcd.bean">
    <class name="Employee">
       <id name="username" length="20"/>
       <property name="password" length="20" not-null="true"/>
       <property name="gender" not-null="true" length="5">
         <type name="org.hibernate.type.EnumType">
         <param name="enumClass">com.lcd.bean.Gender</param>
                 <!-- 12为java.sql.Types.VARCHAR常量值,即保存枚举的字面值到数据库。如果不指定type参数,保存枚举的索引值(从0开始)到数据库-->
         <param name="type">12</param>
         </type>
        </property>
    </class>
</hibernate-mapping>
老是出现这个错误,谁帮忙解决一下
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans.xml]: Invocation of init method failed; nested exception is org.hibernate.MappingException: Could not determine type for: org.hibernate.type.EnumType, for columns: [org.hibernate.mapping.Column(gender)]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1338)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:423)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.lcd.junit.test.save(test.java:9)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: org.hibernate.MappingException: Could not determine type for: org.hibernate.type.EnumType, for columns: [org.hibernate.mapping.Column(gender)]
at org.hibernate.mapping.SimpleValue.getType(SimpleValue.java:266)
at org.hibernate.mapping.SimpleValue.isValid(SimpleValue.java:253)
at org.hibernate.mapping.Property.isValid(Property.java:185)
at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:410)
at org.hibernate.mapping.RootClass.validate(RootClass.java:192)
at org.hibernate.cfg.Configuration.validate(Configuration.java:1026)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:814)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:732)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1369)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1335)
... 31 more

解决方案 »

  1.   

    Could not determine type for: org.hibernate.type.EnumType, for columns: [org.hibernate.mapping.Column(gender)]实体类怎么写的
    或者就用普通类型就可以了
      

  2.   

             <property name="costMethod" update="false">
                <column name="costMethod" not-null="true"/>
                <type name="org.hibernate.type.EnumType">
                 <param name="enumClass">cn.util.CostMethod</param>
                </type>
            </property>
    我的是这种,没有问题,你检查一下你的配置先
      

  3.   

    public class Employee {
    private String username;
    private int password;
    private Gender gender=Gender.MAN;
    public String getUsername() {
    return username;
    }
    public void setUsername(String username) {
    this.username = username;
    }
    public int getPassword() {
    return password;
    }
    public void setPassword(int password) {
    this.password = password;
    }
    public Gender getGender() {
    return gender;
    }
    public void setGender(Gender gender) {
    this.gender = gender;
    }
    }
    实体类是这样的,有个枚举类型。
      

  4.   

    能把你的applicationContext.xml的代码贴全么,这个是我的 供你参考下<?xml version="1.0" encoding="UTF-8"?>
    <beans
     default-autowire="byName" xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver">
    </property>
    <property name="url" value="jdbc:mysql://localhost:3306/ngbaojia?useUnicode=true&amp;characterEncoding=utf8">
    </property>
    <property name="username" value="root"></property>
    <property name="password" value="charmingyb"></property>
    </bean>
    <bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
    <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
    <props>
    <prop key="hibernate.dialect">
    org.hibernate.dialect.MySQLDialect
    </prop>
    <prop key="hibernate.show_sql">true</prop>
    <prop key="hibernate.format_sql">true</prop>
    </props>
    </property>
    <property name="mappingResources">
    <list>
    <value>com/ngbaojia/entity/Customerinfo.hbm.xml</value>
    <value>com/ngbaojia/entity/Offerprice.hbm.xml</value>
    <value>com/ngbaojia/entity/Enginner.hbm.xml</value>
    <value>com/ngbaojia/entity/Material.hbm.xml</value>
    <value>com/ngbaojia/entity/Materialcolumn.hbm.xml</value>
    <value>com/ngbaojia/entity/Enginnercolumn.hbm.xml</value>
    <value>com/ngbaojia/entity/Master.hbm.xml</value>
    <value>com/ngbaojia/entity/Department.hbm.xml</value>
    <value>com/ngbaojia/entity/Menu.hbm.xml</value>
    <value>com/ngbaojia/entity/Mastermenu.hbm.xml</value>
    <value>com/ngbaojia/entity/Menucolor.hbm.xml</value>
    <value>com/ngbaojia/entity/Mastermenucolor.hbm.xml</value>
    <value>com/ngbaojia/entity/Custormertype.hbm.xml</value>
    <value>com/ngbaojia/entity/Sprojects.hbm.xml</value>
    <value>com/ngbaojia/entity/Quotedprice.hbm.xml</value>
    <value>com/ngbaojia/entity/Baojiabuwei.hbm.xml</value>
    <value>com/ngbaojia/entity/Baojiainfo.hbm.xml</value></list>
    </property></bean>
    <import resource="applicationContext-customerinfo.xml"/>
    <import resource="applicationContext-customertype.xml"/>
        <import resource="applicationContext-department.xml"/>
        <import resource="applicationContext-enginner.xml"/>
        <import resource="applicationContext-marterialcolumn.xml"/>
        <import resource="applicationContext-mastermenu.xml"/>
        <import resource="applicationContext-masters.xml"/>    
        <import resource="applicationContext-menu.xml"/>       
        <import resource="applicationContext-sprojects.xml"/>     
        <import resource="applicationContext-offerprice.xml"/>   
            <import resource="applicationContext-quotedprice.xml"/>
            <import resource="applicationContext-baojiainfo.xml"/>
            <import resource="applicationContext-baojiabuwei.xml"/>
    </beans>
      

  5.   

    有枚举类型的话最好使用注解,xml麻烦
      

  6.   

    实体类里面全用封装类写,int-Integer等