hibernate.hbm2ddl.auto设置成none仍然自动更改表结构
hibernate配置文件如下:
<?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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="connection.url">jdbc:odbc:WebSite</property>
<property name="connection.username">sa</property>
<property name="connection.password">sa</property>
<property name="connection.driver_class">
sun.jdbc.odbc.JdbcOdbcDriver
</property>
<property name="hibernate.hbm2ddl.auto">none</property>
<mapping class="com.lujun.manage.login.entites.TblSysUser"/>
</session-factory>
</hibernate-configuration>
实体类如下:
package com.lujun.manage.login.entites;
import java.io.Serializable;
import javax.persistence.*;
import java.sql.Timestamp;
/**
* The persistent class for the tbl_sys_user database table.
*
*/
@Entity
@Table(name="tbl_sys_user")
public class TblSysUser implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="user_id")
private String userId;
private int activated;
@Column(name="create_by")
private String createBy;
@Column(name="create_date")
private Timestamp createDate;
private String mobile;
@Lob()
private String note;
private String password;
private int sex;
private String tel;
@Column(name="user_login_name")
private String userLoginName;
@Column(name="user_name")
private String userName;
public TblSysUser() {
}
public String getUserId() {
return this.userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public int getActivated() {
return this.activated;
}
public void setActivated(int activated) {
this.activated = activated;
}
public String getCreateBy() {
return this.createBy;
}
public void setCreateBy(String createBy) {
this.createBy = createBy;
}
public Timestamp getCreateDate() {
return this.createDate;
}
public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}
public String getMobile() {
return this.mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getNote() {
return this.note;
}
public void setNote(String note) {
this.note = note;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
public int getSex() {
return this.sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public String getTel() {
return this.tel;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getUserLoginName() {
return this.userLoginName;
}
public void setUserLoginName(String userLoginName) {
this.userLoginName = userLoginName;
}
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
每次在启动的时候hiber就把表结构变了,sql输出如下:
drop table tbl_sys_user
create table tbl_sys_user (user_id varchar(255) not null, activated int not null, create_by varchar(255) null, create_date datetime null, mobile varchar(255) null, note text null, password varchar(255) null, sex int not null, tel varchar(255) null, user_login_name varchar(255) null, user_name varchar(255) null, primary key (user_id))
我用的是hibernate 3.5,哪位高手帮我一下,谢谢,或者发邮件给我:45104799@qq.com
[解决办法]
你在程序中有没有对
hibernate.hbm2ddl.auto属性进行相关设置?
[解决办法]
<property name="hibernate.hbm2ddl.auto">none</property>
<mapping class="com.lujun.manage.login.entites.TblSysUser"/>
是不是映射的资源,在进行配置xml文件的时候出现错误
[解决办法]
validate 加载hibernate时,验证创建数据库表结构
create 每次加载hibernate,重新创建数据库表结构
create-drop 加载hibernate时创建,退出是删除表结构
update 加载hibernate自动更新数据库结构
就没有none