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,哪位高手帮我一下,谢谢,或者发邮件给我:[email protected]

解决方案 »

  1.   

    你在程序中有没有对
    hibernate.hbm2ddl.auto属性进行相关设置?
      

  2.   

    <property name="hibernate.hbm2ddl.auto">none</property>
    <mapping class="com.lujun.manage.login.entites.TblSysUser"/>
    是不是映射的资源,在进行配置xml文件的时候出现错误
      

  3.   

    validate               加载hibernate时,验证创建数据库表结构
     create                  每次加载hibernate,重新创建数据库表结构
     create-drop        加载hibernate时创建,退出是删除表结构
     update                 加载hibernate自动更新数据库结构
    就没有none
      

  4.   

    没有在代码里面进行这方面的设置,非常奇怪,hibernate.hbm2ddl.auto没有任何用,无论怎么改,都会drop table然后create
      

  5.   

    映射资源的配置方面貌似没有任何问题,配置文件和那个资源我都已经粘贴在帖子里面了。
    我那个实体类是使用eclipse自动生成的,会不会是这方面的问题?
      

  6.   

    现在已经发现,当时为了测试方便,我从数据库里面查询数据的语句是在创建session factory的同时调用的,可能以内执行时间的原因,所以drop table之后,还没有来得及create table,查询就执行了,所以查询的时候就抛出异常:找不到表。
    后来我把查询放在一个servlet里面执行,就OK了。但是仍然在每次启动的时候会直接执行  drop table  create table这样的动作,表里面的数据都没了 让人无比郁闷。
      

  7.   

    草他吗的,老子现在就是这个问题,搞死我了,号称什么最大的程序员论坛CSDN一个高手都没有,都说查文档,我说查你妹,shit!