示例我有这张桌子

表交易


id int(PK)
单位varchar(10)
journal_number


日记帐编号是单位和序列的组合。所以示例数据可能是这样的

id | unit    | journal_number
------------------------------
1  | 'unit1' | 1
2  | 'unit1' | 2
3  | 'unit2' | 1
4  | 'unit2' | 2

...


我如何自动创建journal_number?

没有手动执行此操作,在休眠状态下有什么解决方案吗?
就像使用发电机

如果我必须手动执行此操作,例如“ unit1”是否有新行。那我就必须

select max(journal_number) where unit = 'unit1'


然后将结果分配到新行

最佳答案

我不知道我是否明白你的意思,但似乎你想要一个复合钥匙。
如果是,那么可以在映射文件中进行处理。

<composite-id name="MyKey" class="string">
  <key-property name="firstKey"/>
  <key-property name="secondKey"/>
</composite-id>

08-03 22:18