最近学习Hibernate是借助某个视频教程,提到id生成策略系列的xml配置,然后在设置<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.hibernate">
<class name = "Students" >
<id name = "id">
<generator class = "uuid"></generator>
</id>
<property name="name"></property>
</class>
</hibernate-mapping> 会自动根据配置生成一张表,不知道我要不要把另外几段代码贴出来。
但是提示的是无法插入,没表。视频上就也看到了自动生成表,各种泪奔
求解释~谢谢!!HibernateXML

解决方案 »

  1.   


    其实那个问题解决了,但是这里有个新问题package com.hibernate.second;import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.SequenceGenerator;
    import javax.persistence.Table;import org.hibernate.annotations.GenericGenerator; @Entity
    @SequenceGenerator(name="workerSEQ",sequenceName="workerSEQ_DB")
    public class Worker {
    private int salary;
    private String name;
    private int age;

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "WorkerSEQ")
    public int getSalary() {
    return salary;
    }
    public void setSalary(int salary) {
    this.salary = salary;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }

    }
    报的错:Exception in thread "main" org.hibernate.AnnotationException: Unknown Id.generator: WorkerSEQ
    at org.hibernate.cfg.BinderHelper.makeIdGenerator(BinderHelper.java:428)
    at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1901)
    at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1279)
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:754)
    at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)
    at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1319)
    at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
    at WorkerTest.main(WorkerTest.java:17)
    求指导,谢谢!
      

  2.   

    反对法package com.hibernate.second;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.SequenceGenerator;
    import javax.persistence.Table;
     
    import org.hibernate.annotations.GenericGenerator;
     
        @Entity
        @SequenceGenerator(name="workerSEQ",sequenceName="workerSEQ_DB")
        public class Worker {
        private int salary;
        private String name;
        private int age;
         
        @Id
        @GeneratedValue(strategy = GenerationType.SEQUENCE,generator = "WorkerSEQ")
        public int getSalary() {
            return salary;
        }
        public void setSalary(int salary) {
            this.salary = salary;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
         
    }
    报的错:Exception in thread "main" org.hibernate.AnnotationException: Unknown Id.generator: WorkerSEQ
    at org.hibernate.cfg.BinderHelper.makeIdGenerator(BinderHelper.java:428)
    at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1901)
    at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1279)
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:754)
    at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:546)
    at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:291)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1319)
    at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
    at WorkerTest.main(WorkerTest.java:17)
    求指导,谢谢!