在 Hibernate 中映射 EnumSet
如何将 EnumSet 存储在数据库中(使用 Hibernate)?
@Entity
public class A
{
public static enum SOME_ENUM { A, B, C };
private EnumSet<SOME_ENUM> myEnumSet = EnumSet.of(SOME_ENUM.A, SOME_ENUM.B);
...
...
}
如果我尝试坚持上述内容,我当然会得到例外。 我想使用@CollectionOfElements,但它已被弃用。 @CollectionOfElements 有其他选择吗?
有没有办法将 EnumSet 存储在单列中而不写入 UserType?
谢谢!
How to store EnumSet in the DB (using Hibernate)?
@Entity
public class A
{
public static enum SOME_ENUM { A, B, C };
private EnumSet<SOME_ENUM> myEnumSet = EnumSet.of(SOME_ENUM.A, SOME_ENUM.B);
...
...
}
If I try to persist the above, I get exception of course.
I wanted to use @CollectionOfElements, but it is deprecated. Is there any alternative of @CollectionOfElements?
Is there a way to store EnumSet in a single column without writing UserType?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
hibernate 没有内置对此类事物的支持。请注意,在处理 hibernate 和集合时,您实际上应该只指定一个接口;在本例中设置。 Hibernate 代理所有集合,因此它可以有效地处理延迟加载。
这并不是说这很困难。请参阅此文档
https://forum.hibernate.org/viewtopic.php?p=2300843< /a>
hibernate does not have built in support for such things. Note that when dealing with hibernate and collections you should really only be specifying an interface; in this case Set. Hibernate proxies all collections so it can efficiently deal with lazy loading.
This is not to say this is difficult. See this documentation
https://forum.hibernate.org/viewtopic.php?p=2300843