Java 如何在hibernate注释中为子类配置表生成器?

Java 如何在hibernate注释中为子类配置表生成器?,java,hibernate,Java,Hibernate,我正在使用hibernate作为ORM工具创建一个应用程序,注释用于配置JPA元数据。现在,我面临一些实体ID生成器的问题。我的实体是 @MappedSuperclass public class IdentityEntity { @Id @Column(name = "id") @TableGenerator(name = "id_generator", table = "db_index", pkColumnName = "id", valueColumnName = "manuitemi

我正在使用hibernate作为ORM工具创建一个应用程序,注释用于配置JPA元数据。现在,我面临一些实体ID生成器的问题。我的实体是

@MappedSuperclass
public class IdentityEntity {

@Id
@Column(name = "id")
@TableGenerator(name = "id_generator", table = "db_index", pkColumnName = "id", valueColumnName = "manuitemid", pkColumnValue = "id", allocationSize = 1, initialValue=1000)
@GeneratedValue(strategy = GenerationType.TABLE, generator = "id_generator")
private long id;

public long getId() {
    return id;
}

public void setId(long id) {
    this.id = id;
}
}
在此场景中,只要tis
IdentityEntity
将用作任何实体的父类。Id生成器将使用相同的列名为所有实体生成Id。 我尝试将id生成器放在具有不同列名的其他实体上。但是hibernate返回一条错误消息,表示找不到新列名。详情如下:

ERROR MultipleHiLoPerTableGenerator - could not read or init a hi value
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'menuitemid' in 'field list'
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

我想改变这种行为,并分别为每个实体创建一个ID生成器。我有哪些选项?

这是一个映射的超类,正在尝试在从它继承的类中使用不同的id?不要将id放入超类这是一个映射的超类,正在尝试在从它继承的类中使用不同的id?不要将id放入超类中