Java Hibernate使用字段+;最大值

Java Hibernate使用字段+;最大值,java,hibernate,hibernate-mapping,Java,Hibernate,Hibernate Mapping,我有这张桌子 表事务 id int(主键) 单位:瓦查尔(10) 日记账编号 日记账编号是单位和序列的组合。所以示例数据可能是这样的 id | unit | journal_number ------------------------------ 1 | 'unit1' | 1 2 | 'unit1' | 2 3 | 'unit2' | 1 4 | 'unit2' | 2 ... i如何自动创建日记账编号 在hibernate中有没有不手动执行此操作的解决方案? 就像使用

我有这张桌子

表事务

  • id int(主键)
  • 单位:瓦查尔(10)
  • 日记账编号
日记账编号是单位和序列的组合。所以示例数据可能是这样的

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

...
i如何自动创建日记账编号

在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>

我不知道我是否明白你的意思。但你似乎想要一把复合钥匙。 如果是,则可以在映射文件中执行此操作

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


您可以使用复合键。如果我得到了复合键,我想可能是关键字,但如何按顺序自动生成日志id?不,它不仅仅是一个关键字,Hibernate中有一个称为复合键的功能在寻找解决方案后,它不必是复合键。因为复合键应该由应用程序分配。我只需要自动生成的日志号。然后它不是一个关键字:)我想如果你分开属性,第一个由应用程序生成,第二个由数据库生成,并将它们组合成一个复合id。我想这将是解决方法。你可以使用复合键。如果我得到了它,我想可能复合键就是关键字,但是如何按顺序自动生成日志id呢?不,它不仅仅是一个关键字,Hibernate中有一个称为复合id的功能在寻找解决方案后,它不必是复合密钥。因为复合键应该由应用程序分配。我只需要自动生成的日志号。然后它不是一个关键字:)我想如果你分开属性,第一个属性由应用程序生成,第二个属性由数据库生成,并将它们组合成一个复合id。我想这会解决的