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

时间:2011-08-07 08:30:46

标签: java hibernate

我正在使用hibernate创建一个app作为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生成器。我有什么选择?

0 个答案:

没有答案