Hibernate:如何更新现有的列定义?

时间:2014-09-02 11:49:35

标签: java hibernate

有没有办法更新已存在数据的现有表的列定义,或者表是空的 考虑一下:

@ManyToOne
@JoinColumn(name="type",nullable=false)
private EmpType type;

@JoinColumn(name="type",nullable=false)
private String type;  

考虑到上述任何一种情况,一旦hibernate初始化,它就会创建具有Not Null属性的表列。但当我将它们从nullable=false更改为nullable=true时,此更改不会反映在表格中。它仍然不是空的 我的配置还包括
 <property name="hibernate.hbm2ddl.auto" value="update" />

还有其他方法,还是我做错了?

修改

<persistence xmlns="http://java.sun.com/xml/ns/persistence"
version="1.0">
<persistence-unit name="myapp" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
        <property name="hibernate.hbm2ddl.auto" value="update" />
        <property name="hibernate.show_sql" value="false" />
    </properties>
</persistence-unit>

并在我的春季应用程序上下文中:

    <bean id="entityManagerFactory"
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="persistenceUnitName" value="myapp" />
    <property name="jpaPropertyMap">
        <map>
            <entry key="hibernate.ejb.interceptor"
                value="org.springframework.orm.hibernate3.support.ScopedBeanInterceptor" />
        </map>
    </property>
</bean>

0 个答案:

没有答案