有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

带注释的java Hibernate字符串主键

我试图创建一个带有注释的特权类,其主键是字符串。我将在插入时手动分配它们。因此,hibernate无需为其生成值。我正在尝试这样做:

@Id
@GeneratedValue(generator = "assigned")
@Column(name = "ROLE_NAME", nullable = false)
private String roleName;

但它抛出了一个例外:

Caused by: org.hibernate.AnnotationException: Unknown Id.generator: assigned

如何配置带有注释的String主键


共 (3) 个答案

  1. # 1 楼答案

    由于roleName不是自动生成的,因此不应使用@GeneratedValue对其进行注释:

    @Id
    @Column(name = "ROLE_NAME", nullable = false)
    private String roleName;
    
  2. # 2 楼答案

    只需使用@Id注释,它可以定义哪个属性是实体的标识符。您不需要使用@GeneratedValue注释,因为我认为您不希望hibernate为您生成这个属性

    即使在基于XML配置的方法中,它也是一个可选标记,可以跳过。

  3. # 3 楼答案

    您可以这样输入,假设职位是该薪资实体的主键

    @Id
    @Column (name = "POSITION", nullable = false)
    private String position;
    

    那就行了