Java SpringRoo-在mysql数据库中使用自己的id而不是自动生成的密钥

Java SpringRoo-在mysql数据库中使用自己的id而不是自动生成的密钥,java,mysql,spring-mvc,spring-roo,Java,Mysql,Spring Mvc,Spring Roo,我是SpringRoo的新手,我想为mysql数据库中的数据库条目生成并使用我的on ID,而不是自动生成的ID。我不知道该怎么做。我在这里找到的唯一相关帖子是: 但是这篇文章已经四年了,我正在使用SpringRoo1.3.2而不是1.1.0,所以在此期间可能会有一些变化 因此,spring roo在test_roo_Jpa_Entity.aj中生成的代码是: privileged aspect test_Roo_Jpa_Entity { declare @type: test: @Enti

我是SpringRoo的新手,我想为mysql数据库中的数据库条目生成并使用我的on ID,而不是自动生成的ID。我不知道该怎么做。我在这里找到的唯一相关帖子是:

但是这篇文章已经四年了,我正在使用SpringRoo1.3.2而不是1.1.0,所以在此期间可能会有一些变化

因此,spring roo在test_roo_Jpa_Entity.aj中生成的代码是:

privileged aspect test_Roo_Jpa_Entity {

declare @type: test: @Entity;

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long test.id;
这也是我在数据库中看到的。新条目的id是自动生成的,这是我想要避免的。我在SpringRoo中使用了--identifierField或--identifierColumn命令,但迄今为止没有成功。但我不知道如何使用这些命令

非常感谢您事先的帮助

编辑1:

persit my实体的代码:

 String[] split = line.split(";"); Long TEST_ID = Long.valueOf(split[0]);
 String TEST_NAME = split[1]; TEST test = new TEST(); test.setName(TEST_NAME);
 test.setId(TEST_ID); test.persist()

我认为您必须将此部分从aspectJ文件移动到java实体文件

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long test.id;
为此,必须标记行
private Long test.id并右键单击。然后,您必须单击AspectJ重构并推入。这一部分现在应该在Java类中移动

然后将策略更改为
@GeneratedValue(策略=GenerationType.IDENTITY)


现在您应该可以创建自己的Id了。当然,您的数据库也应该接受这一点。

答案有帮助吗?或者你有解决办法吗?嘿,帕特里克。谢谢你的回答。我试过你的建议,但它似乎不能解决我的问题。在我的mysql数据库中,我的id列中仍然有自动生成的id。您能显示手动设置id的代码吗?当然。我在代码中导入了相应的*-classes.jar文件,并从文本中读取数据,其中第一列是id,第二列是名称。代码本身是:
String[]split=line.split(“;”);长测试_ID=Long.valueOf(分割[0]);字符串测试_NAME=split[1];测试=新测试();test.setName(test_NAME);test.setId(test_ID);test.persist()谢谢,您可以完全删除这一行再试一次吗:
@GeneratedValue(strategy=GenerationType.AUTO)
。我用带Spring的inMemory DB对它进行了测试,它可以正常工作。