Java SpringRoo-在mysql数据库中使用自己的id而不是自动生成的密钥
我是SpringRoo的新手,我想为mysql数据库中的数据库条目生成并使用我的on ID,而不是自动生成的ID。我不知道该怎么做。我在这里找到的唯一相关帖子是: 但是这篇文章已经四年了,我正在使用SpringRoo1.3.2而不是1.1.0,所以在此期间可能会有一些变化 因此,spring roo在test_roo_Jpa_Entity.aj中生成的代码是: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
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对它进行了测试,它可以正常工作。