【发布时间】:2021-05-10 22:40:33
【问题描述】:
我有一个名为Tasit 的实体,如下所示。
package tr.com.entity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import tr.com.MyGenerator;
@Entity
public class Tasit {
@Id
@GeneratedValue(generator = "ID_GENERATOR")
private Long id;
@Column(name = "TASIT_ADI")
private String tasitAdi;
public String getTasitAdi() {
return tasitAdi;
}
public void setTasitAdi(String tasitAdi) {
this.tasitAdi = tasitAdi;
}
public Tasit(Long tasitId, String tasitAdi) {
super();
this.id = tasitId;
this.tasitAdi = tasitAdi;
}
public Tasit(String tasitAdi) {
super();
this.tasitAdi = tasitAdi;
}
public Long getId() {
return id;
}
public Tasit() {
super();
}
}
正如您在Tasit 实体中看到的那样,有@GeneratedValue(generator = "ID_GENERATOR")。
我添加tr.com.entity 包package-info.java 类。
我的目标是写一个Generator 并用于tr.com.entity 包中的所有实体
我的package-info.java 班级也在下面
@org.hibernate.annotations.GenericGenerator(
name = "ID_GENERATOR",
strategy = "enhanced-sequence",
parameters = {
@org.hibernate.annotations.Parameter(
name = "sequence_name",
value = "JPWH_SEQUENCE"
),
@org.hibernate.annotations.Parameter(
name = "initial_value",
value = "1000"
)
}
)
package tr.com.entity;
通过这样做,我尝试在TASIT 表中插入任何数据。
但是当我运行适当的运行器代码以将数据插入到 TASIT 表中时,出现异常。
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: org.hibernate.AnnotationException: Unknown Id.generator: ID_GENERATOR
at org.hibernate.cfg.BinderHelper.makeIdGenerator(BinderHelper.java:639)
at org.hibernate.cfg.AnnotationBinder.processId(AnnotationBinder.java:2287)
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:2193)
at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:895)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:728)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3625)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3579)
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1381)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1786)
at tr.com.hibernate.test.TasitTest.<clinit>(TasitTest.java:47)
任何帮助将不胜感激。
【问题讨论】:
-
你使用什么休眠版本?请同时显示您的休眠配置。
-
休眠版本为4.0.2
标签: java hibernate jpa annotations