JPA / HIBERNATE:值必须是常量

时间:2013-10-31 08:51:19

标签: java hibernate java-ee jpa enums

我有以下情况。

public enum TestEnum{

    PUUNITONE("puunitone"),
    PUUNITTWO("puunittwo");

    private String name;

    private TestEnum(String name) {
        this.name = name;
    }


    public String getName() {
        return name;
    }

}
<{1>}类

中的

EJB @stateless

我有以下

@PersistenceContext(unitName = TestEnum.PUUNITONE.getName())
private EntityManager entityManager;

现在我的问题:

1。在java中是枚举常量还是不是?如果是,这里有什么问题?
 2.使用Enum作为常量来解决这个问题还有办法或工作方法吗?

非常感谢任何建议

1 个答案:

答案 0 :(得分:6)

  1. 是的,枚举是常量,但getName()不是常量:编译器无法判断它总会返回相同的结果。
  2. 不,您必须在注释中使用litteral Stringfinal static String。只有那些是编译器的常量。