Dag*_*eto 2 java enums annotations hibernate jakarta-ee
我在 hibernat 中有这个 Enums 列表的注释:
@CollectionOfElements(targetElement = SomeType.class)
@JoinTable(name = "table_name",
joinColumns = @JoinColumn(name = FK_NAME)
)
@Column(name = "someTypeCd", nullable = false)
@LazyCollection(LazyCollectionOption.FALSE)
@GeneratedValue(strategy=GenerationType.AUTO)
@Enumerated(EnumType.STRING)
private List<SomeType> someType;
Run Code Online (Sandbox Code Playgroud)
问题是当我调用搜索查询执行时,它返回:
java.lang.ClassCastException - java.lang.String cannot be cast to java.lang.Enum
Run Code Online (Sandbox Code Playgroud)
问题出在哪里?
当我通过寻找解决方案来到这里时:
@Column
@Enumerated
@ElementCollection(targetClass = MyEnum.class)
private List<MyEnum> values;
Run Code Online (Sandbox Code Playgroud)
为我做了这项工作。感谢您对@ElementCollection我不知道的提示。
您粘贴的 snippped 可能会带来问题,即您将枚举值描述为 String 类型@Enumerated(EnumType.String)。我猜这会导致演员表异常。也许EnumType.Ordinal会适合。我没有这方面的经验。我没有定义任何东西就很好。