1、hibernate 可以根据POJO里面的注解来生产表!
2、需要在hibernate的配置里把自动建表打开!

解决方案 »

  1.   

    可以通过Ant和Xdoct对pojo里的注释生成hibernate所需的POJO配置文件。
    然后在hibernate的配置里加上<property name="hibernate.hbm2ddl.auto">update</property>
    启动项目就会自动建表!
      

  2.   


    没有错!~!只需要加这个就可以了!~!我现在都是用的这个!~!
    不过上面的update应该改成create才能自动创建表
      

  3.   

    1、hibernate 可以根据POJO里面的注解来生产表! 
    2、需要在hibernate的配置里把自动建表打开!
      

  4.   

    Hibernate中自己附带了两个工具hbm2dll,hbm2java
    可以在java源文件(POJO类),数据库实现脚本之间进行生成。楼主试试
      

  5.   

    绝对可以的,值要把配置文件写好,就会根据POJO 类生成数据库脚本
    甚至POJO 类也可以生成的
      

  6.   

    大哥们。 我说的不是hibernate  我说的是JPA  OK?
      

  7.   

    推荐你用jpa2.5的注解特性,
    我把我写的例子发给你参考下
    类文件
    @Entity
    public class Person { private int id;
    private String name;
    private String phone;
    private String address;

    @Id @GeneratedValue
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getPhone() {
    return phone;
    }
    public void setPhone(String phone) {
    this.phone = phone;
    }
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    } public Person(){}
    public Person(String name,String phone,String address){
    this.name=name;
    this.phone=phone;
    this.address=address;
    }

    }
      

  8.   

    配置文件,当你拿到EntityManager时候就开始创建表了
    <?xml version="1.0"?>
    <persistence 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_1_0.xsd" version="1.0">
    <!-- file:///D:\hibernate\hibernate-entitymanager-3.3.2.CR1\resources\org\hibernate\ejb\persistence_1_0.xsd -->
      <persistence-unit name="test">
      
    <properties>
             <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
             <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
             <property name="hibernate.connection.username" value="root"/>
             <property name="hibernate.connection.password" value="root"/>
             <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8"/>
             <property name="hibernate.max_fetch_depth" value="3"/>
             <property name="hibernate.hbm2ddl.auto" value="update"/>
             <property name="hibernate.jdbc.fetch_size" value="255"/>
         <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>
      

  9.   

    你都能通过表转换成pojo了,反过来还有问题吗persistence.xml中的<property name="hibernate.hbm2ddl.auto" value="update"/> 来完成validate  加载hibernate时,验证创建数据库表结构
    create 每次加载hibernate,重新创建数据库表结构,这就是导致数据库表数据丢失的原因。
    create-drop 加载hibernate时创建,退出是删除表结构
    update 加载hibernate自动更新数据库结构
      

  10.   

    就是建议你在持久化层使用Hibernate
    Hiberate.cfg.xml配置文件里面 加一条语句:位置<session-factory> 
    语句:<property name="hbm2ddl.auto">update</property> 
    </session-facotry> jpa(java 持久性 api)的规范
     hibernate 从3.2开始,就开始兼容jpa。
      

  11.   

    就是建议你在持久化层使用Hibernate
    Hiberate.cfg.xml配置文件里面 加一条语句:位置<session-factory> 
    语句:<property name="hbm2ddl.auto">update</property> 
    </session-facotry> jpa(java 持久性 api)的规范
     hibernate 从3.2开始,就开始兼容jpa。
      

  12.   

    jpa只是规范,它的具体实现还是要靠不同的产品实现!!!
      

  13.   

    jpa是sun制定的规范,有两种实现,一种是hibernate,一种是oracle的toplink
    楼主好像不太明白jpa的概念,要使用jpa就要选择一种实现,呵呵
      

  14.   

    严重: save failed
    javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.zcq.dao.User
    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:219)
    at com.zcq.dao.UserDAO.save(UserDAO.java:49)
    at com.zcq.dao.Test.main(Test.java:16)
    Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: com.zcq.dao.User
    at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:79)
    at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
    at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
    at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
    at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:213)
    ... 2 more
    Exception in thread "main" javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.zcq.dao.User
    at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:219)
    at com.zcq.dao.UserDAO.save(UserDAO.java:49)
    at com.zcq.dao.Test.main(Test.java:16)
    Caused by: org.hibernate.PersistentObjectException: detached entity passed to persist: com.zcq.dao.User
    at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:79)
    at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
    at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
    at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
    at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
    at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:213)
    ... 2 more