本人通过class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="annotatedClasses">
<list>
<value>com.erayt.po.EmployeePO</value>
生成对应表产生的结果却是 时有时无

解决方案 »

  1.   

    这个是我的Spring配置,,希望对你有帮助
    <?xml version="1.0" encoding="GBK"?>
    <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-3.0.xsd
               http://www.springframework.org/schema/context
               http://www.springframework.org/schema/context/spring-context-3.0.xsd
               http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
               http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
    <context:component-scan base-package="edu.jmu" />
    <!--  c3p0
    <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/test?useUnicode=true&amp;characterEncoding=UTF-8" />
    <property name="user" value="root" />
    <property name="password" value="123456" />
    <property name="initialPoolSize" value="1" />
    <property name="minPoolSize" value="1" />
    <property name="maxPoolSize" value="300" />
    <property name="maxIdleTime" value="60" />
    <property name="acquireIncrement" value="5" />
    <property name="idleConnectionTestPeriod" value="60" />
    </bean>
    -->

    <bean id="entityManagerFactory" destroy-method="destroy"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <!-- <property name="dataSource" ref="dataSource" /> --> 
    <property name="persistenceUnitName" value="neal" />
    <property name="loadTimeWeaver">
    <bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
    </property>
    </bean>

    <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
       <property name="entityManagerFactory" ref="entityManagerFactory"/>
    </bean>
    <tx:annotation-driven transaction-manager="txManager" />
    </beans>用的是 JPA2.0 
    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="2.0"
    xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
          http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> <persistence-unit name="neal" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
             <property name="hibernate.connection.driver_class" value="org.gjt.mm.mysql.Driver"/>
            <property name="hibernate.connection.username" value="root"/>
            <property name="hibernate.connection.password" value="123456"/>
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/oa?useUnicode=true&amp;characterEncoding=UTF-8"/>
                    
    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
    <property name="hibernate.max_fetch_depth" value="3" />
    <!-- 
    <property name="hibernate.hbm2ddl.auto" value="update" />
    -->
    <property name="hibernate.jdbc.fetch_size" value="3" />
    <!-- <property name="hibernate.jdbc.batch_size" value="10" /> -->
    <property name="hibernate.show_sql" value="true" />
    <property name="hibernate.format_sql" value="false" />

    </properties> </persistence-unit>
    </persistence>
      

  2.   

    我用的是扫描目录的方式没问题:
    <property name="packagesToScan">
    <list>
    <value>com.leadtone.gegw.aoi.gateway.entity</value>
    </list>
    </property>
    时有时无什么意思? 有没有报错?
    你的com.erayt.po.EmployeePO类内容是什么?
      

  3.   


    package com.erayt.po;import java.io.Serializable;import javax.persistence.CascadeType;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.FetchType;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator;
    @Entity
    @Table(name = "EMPLOYEE_INFO")
    @SuppressWarnings("serial")
    public class EmployeePO implements Serializable {


    @Id
    @GeneratedValue(generator = "system-uuid")
    @GenericGenerator(name = "system-uuid", strategy = "uuid")
    @Column(name = "UUID", length = 32)
    private String id;

    /**
     * 柜员号
     */
    @Column(name = "_CODE", length = 50)
    private String code;

    /**
     * 柜员姓名
     */
    @Column(name = "_NAME", length = 50)
    private String name;

    /**
     * 密码
     */
    @Column(name = "_PASSWORD", length = 16)
    private String password;

    /**
     * 所属机构
     */
    @ManyToOne(cascade={CascadeType.PERSIST, CascadeType.MERGE}, fetch=FetchType.LAZY)
    @JoinColumn(name = "ORG_ID")
    private InstitutionPO org;

    /**
     * 启用状态(0:启用、1:未启用)
     */
    @Column(name = "_STATUS")
    private int status = 0;

    /**
     * 有效期限
     */
    @Column(name = "VALID_DATE", length = 50)
    private String validDate;

    /**
     * 是否删除
     */
    @Column(name = "IS_DELETED")
    private boolean isDeleted = false;就是一个普通的Entity
      

  4.   

    在com.erayt.po 下都是实体类问题就是该包下的类有些生成了对应的表 有些是未生成然而这些类注解都几乎是一样的
      

  5.   

    问题解决了 原来是我的@Column(name = "_STATUS") 
    改为@Column(name = "STATUS")就可以了