java – 我可以使用Hibernate Annotations自动将EnumSet映射到一系列布尔列吗?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 我可以使用Hibernate Annotations自动将EnumSet映射到一系列布尔列吗?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1004字,纯文字阅读大概需要2分钟。
内容图文
![java – 我可以使用Hibernate Annotations自动将EnumSet映射到一系列布尔列吗?](/upload/InfoBanner/zyjiaocheng/768/9440b7e5ca894d1d9c066242d1a49970.jpg)
我有一个EnumSet,我认为映射到一系列布尔列会很好.这样可以轻松地使用SQL工具进行检查,并且可以灵活地更改可用的枚举值.但是,我真的不想为此手写所有的getter和setter.
有没有人有一个聪明的解决方案使用某种hibernate元数据将这个对象分成一堆属性?
谢谢!
解决方法:
如果我理解正确,对于像这样的枚举:
public enum Color { RED, GREEN, BLUE; }
你在数据库中有3个真/假列,每个可能的枚举值一个.然后,包含RED和BLUE的EnumSet应映射到:
RED GREEN BLUE
true false true
如果是这种情况,我所知道的唯一方法是编写自己的org.hibernate.usertype.UserType实现.这是一个非常直接的任务,在Hibernate站点上提供了一些示例,例如,here.
编辑:我刚刚意识到事情必须要复杂一些.如果您希望在应用程序中为所有可能的EnumSet创建一个Hibernate类型映射,则必须执行以下操作:
>使用org.hibernate.usertype.ParameterizedType并使用户类型可由enum类进行参数化.
>根据枚举类的值,确定要读/写的列数和列数.
>每次使用EnumSet时实例化类型.
>考虑在一个表中映射多个集合的可能性,以及添加新枚举值将如何影响现有类型的工作.
这可能很容易达到一整天的工作,但似乎很可行.希望你能从这里弄明白.
内容总结
以上是互联网集市为您收集整理的java – 我可以使用Hibernate Annotations自动将EnumSet映射到一系列布尔列吗?全部内容,希望文章能够帮你解决java – 我可以使用Hibernate Annotations自动将EnumSet映射到一系列布尔列吗?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。