我是 spring-roo 的新手,我想为 mysql 数据库中的数据库条目生成和使用我的 on id,而不是自动生成的 id。而且我不确定该怎么做。我在这里找到的唯一相关帖子是这个:
How can I provide my own @id field using Spring Roo and JPA
但这篇文章现在已经四年了,我使用的是 spring roo 1.3.2 而不是 1.1.0,所以在此期间可能发生了一些变化。
所以在test_Roo_Jpa_Entity.aj中spring roo生成的代码是:
privileged aspect test_Roo_Jpa_Entity {
declare @type: test: @Entity;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long test.id;
这也是我在数据库中看到的。新条目的 ID 是自动生成的,这是我想避免的事情。我在 spring roo 中使用了 --identifierField 或 --identifierColumn 命令,但到目前为止没有任何成功。但我不确定如何使用这些命令。
非常感谢您的提前帮助!
编辑 1:
保留我的实体的代码:
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 Refactoring 和Push In。现在应该将这部分移到您的 Java 类中。
然后将策略更改为@GeneratedValue(strategy = GenerationType.IDENTITY)
现在您应该能够创建自己的 ID。当然你的数据库也应该接受这个。
关于java - spring roo - 在 mysql 数据库中使用自己的 id 而不是自动生成的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34607866/