Используя JPA, мы можем определить перечисление как идентификатор объекта?Использование перечисления как id
Я попытался следующие:
public enum AssetType {
....
}
@Entity
@IdClass(AssetType.class)
public class Adkeys {
private AssetType type;
@Id
@Enumerated(EnumType.STRING)
@Column(nullable = false)
public AssetType getType() {
return type;
}
}
Использование OpenJPA, он жалуется:
org.apache.openjpa.persistence.ArgumentException: идентификатор класса "класса aa.AssetType" указано по типу «класс aa.Adkeys» не имеет открытого конструктора no-args.
Так что мои вопросы:
- мы должны иметь возможность использовать перечисление в качестве идентификатора для объекта на JPA? (т. е. есть ошибка в OpenJPA)
- или я где-то ошибаюсь?
- и есть ли какое-либо обходное решение для такой проблемы?
@Nathan: Значит, это должно быть ошибкой. –