我刚刚进入了一个使用Spring来坚持一切的项目。对于id列,使用@GeneratedValue。我使用SQL从另一个数据库导入数据,现在自动增加的生成值不同步。
使用Spring的Backend正在运行在HANA云平台上的Java Web Tomcat 7服务器上运行。
有人知道,它在哪里保存这个生成的值以及我如何增加它所以它使用的id高于我通过SQL插入的id?
非常感谢和亲切的问候, tietze111
编辑:我们正在使用HANA数据库,这里有一些代码,希望这是您正在寻找的:
public abstract class AbstractModel<ID extends Serializable> implements Serializable {
private static final long serialVersionUID = -3275552243704225648L;
@Id
@GeneratedValue
@JsonView(View.Summary.class)
protected ID id;
[...]
编辑2(更多信息,不知道这是否有用?): 我们正在使用休眠,但问题是序列没有出现在系统中。有一个名为SEQUENCE的表,但只有一个固定的SEQ_COUNT属性。它的值始终为50.SEY_NAME属性的值为“SEQ_GEN”。该表只有1个条目。这就是定义的样子this。图片还显示没有序列。
解: 在stackoverflow上找到this thread并将生成策略更改为GenerationType.TABLE。现在我可以轻松地更改表格中的id。
答案 0 :(得分:1)
发现this thread关于stackoverflow上生成策略的含义,并将生成策略更改为GenerationType.TABLE。现在我可以轻松地更改表格中的id。
感谢Neil Stockton,他的评论让我朝这个方向发展!
答案 1 :(得分:0)
This is really a SQL/DDL question.
You need to look at the DDL of your database and find out what the sequence name is. Then you will have to update the high value. The default name in hibernate is hibernate_sequence, but yours may vary by JPA provider.
alter sequence <sequence name> restart with <new starting value>;
If you're using an auto_increment column, you update it by altering the table. See http://www.tutorialspoint.com/sap_hana/sap_hana_sql_sequences.htm