例子我有这张表
表事务
- id 整数 (PK)
- unit varchar(10)
- 期刊编号
期刊号是单位和序列的组合。所以示例数据可能是这样的
id | unit | journal_number
------------------------------
1 | 'unit1' | 1
2 | 'unit1' | 2
3 | 'unit2' | 1
4 | 'unit2' | 2
...
我如何自动创建 journal_number?
在不手动执行此操作的情况下,是否可以在 hibernate 中解决此问题? 就像使用生成器一样
如果我必须手动执行此操作,例如,如果“unit1”有一个新行。那么我必须这样做
select max(journal_number) where unit = 'unit1'
然后将结果分配给新行
最佳答案
我不知道我是否明白你的意思。但你似乎想要一个复合键。 如果是,那么您可以在映射文件中执行一些操作。
<composite-id name="MyKey" class="string">
<key-property name="firstKey"/>
<key-property name="secondKey"/>
</composite-id>
关于java - Hibernate 使用 field + max 的组合在非主键上生成值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8610968/