我的“理想”情况是有一个表,在生产中(Oracle)有一个 oracle 触发器生成的自动递增 ID。然而,在单元测试中,我希望能够“只使用 H2”作为我的数据库,并让它为我自动创建数据库。但后来我失去了自动递增的 ID。是否有可能通过任何方式两者兼得?(基本上是一个可选的生成ID?)
谢谢你的帮助。
我的“理想”情况是有一个表,在生产中(Oracle)有一个 oracle 触发器生成的自动递增 ID。然而,在单元测试中,我希望能够“只使用 H2”作为我的数据库,并让它为我自动创建数据库。但后来我失去了自动递增的 ID。是否有可能通过任何方式两者兼得?(基本上是一个可选的生成ID?)
谢谢你的帮助。
您也可以将 ID 列定义为auto_increment
H2 中的列。
看起来您可以指定序列名称本身,它将作为 h2 中的序列“自动创建”。我认为将其定义为 auto_increment 也可以,尽管我不确定当还有一个触发器从序列中为其分配一个值时它会如何工作。我想我担心的是休眠的自动增量对于多进程应用程序来说不够好,但它可能是。
http://www.hibernate-training-guide.com/identifiers-generators.html
https://forums.oracle.com/forums/thread.jspa?threadID=2370530也可能有帮助