Hibernate:实体类名称作为标识符

时间:2013-11-20 09:20:08

标签: java hibernate hibernate-mapping

我想让我的实体成为单身人士。该单身人士应该可以从其他实体访问。

所以我决定设置自己的身份,如:

@Entity
@Table(name = "tableName")
public class SingletonEntity {

  @Id
  private int id = this.getClass().getSimpleName(); //IS IT POSSIBLE? HOW?

  //.......
}

问题:

如何实现?请。举个例子。

修改

值得一提的是,我的SingletonEntity只有最终的字符串状态。所以我可以说它是无国籍的。实际上,我不想要单例,我只想为该实体设置最终ID,我希望该id应该等于SingletonEntity.class.getSimpleName()

@Balaji Reddy:

我试过了:

@Entity
@Table(name = "Client")
public class Client implements Serializable {

    @Id
    @Column(name = "id")
    private static final String id = Client.class.getSimpleName();

    .................
}

得到:

  

没有为实体指定标识符:db.Client

字符串

中的

ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

2 个答案:

答案 0 :(得分:2)

您尝试使用常量吗?

private static final String CLASS_NAME = SingletonEntity.class.getSimpleName();

@Id
private String id = CLASS_NAME;

这是实体字段的初始化,您也可以在构造函数中执行此操作。

private SingletonEntity() {
    this.id = this.getClass.getSimpleName();
}

答案 1 :(得分:1)

@Entity
@Table(name = "tableName")
public class SingletonEntity {

  @Id
  private static int id = this.getClass().getSimpleName(); //try something like this.

  //.......
}

检查EJB Specifications 3.1