Jpa 复合键可为空列
我正在使用 Hibernate 的 JPA impl 来对一些表进行建模。 我在映射一个表时遇到问题:
- 没有主键
- 在 4 列上有唯一索引,其中 3 列可以为空
我尝试破解它并将索引定义为复合 Id,但由于某些列可以为空,这是无法正常工作。 JPA/Hibernate 可以实现这一点吗?
谢谢
I'm using Hibernate's JPA impl to model some tables. I'm having trouble mapping a table that:
- Has no primary key
- Has a unique index on 4 columns, 3 of which can be nullable
I tried to hack it and define the index as a composite Id, but since some columns are nullable this is not working properly. Is this possible with JPA/Hibernate?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
看来不可为空的列应该是您的主键。 组合键的任何部分都不应该为空。
您需要获取可为空的属性并将它们放置在主键/复合键之外。
另外,这看起来像是 Hibernate 映射具有空值的复合键的副本 当我用 google 搜索“空组合键”时,它出现在#3 中。
It seems that the column that is not nullable should be your primary key. No parts of a composite key should ever be nullable.
You will need to take the nullable properties and place them outside of your primary/composite key.
Also, this looks like a duplicate of Hibernate mapping a composite key with null values which came up as #3 when I googled "null composite key".
解决方法是...您应该实现自己的 UserType 实现并处理 null 值以返回一个代表对象。
看我的例子。 该字段是一个可为空的数字,所以我的实现是:
看起来像在 HBM 文件中:
...在 Java 中:
}
A work arround is... You should implements your own UserType implementation and treats the null value to return a representative Object for this.
Look my example. The field is a nullable numeric, so my implementation is:
Looks like in HBM file:
...In Java:
}