小编Tak*_*ido的帖子

如何使用Hibernate实现自定义字符串序列标识符生成器

我正在使用spring,h2和liquibase的hibernate,我试图通过这个博客文章的例子为我的实体创建一个自定义的String id生成器但是我收到一个错误:Caused by: org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.String

这是我的SequenceStyleGenerator代码:

public class CTCIDGenerator extends SequenceStyleGenerator {

    @Override
    public Serializable generate(SessionImplementor session, Object obj) {
        if (obj instanceof Identifiable) {
            Identifiable identifiable = (Identifiable) obj;
            Serializable id = identifiable.getId();
            if (id != null) {
                return id;
            }
        }
        return "CTC"+super.generate(session, obj);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的实体代码:

@Entity
@Table(name = "contact")
public class Contact implements Serializable, Identifiable<String> {

    private static final long serialVersionUID = 1L;

    @Id
    @GenericGenerator(
        name …
Run Code Online (Sandbox Code Playgroud)

java database hibernate identifier sequence-generators

4
推荐指数
1
解决办法
2万
查看次数