java - 序列生成器: JAVA/JPA/SPRING

标签 java oracle jpa spring-data-jpa

问题:是否可以不使用 select someSequence from Dual 来生成序列号; ?

问题:@GenerateValue@SequenceGenerator 默认情况下使用 select someSequence from Dual; 来获取 nextval对于我的身份证。但我的用户没有从双表中选择的权限,所以我只能使用 id =equence.nextval,但我不知道如何在实体类中使用它。或者我应该如何将 id 值传递给 Entity 构造函数,如sequence.nextval?

用法: Oracle DB、CrudRepository、save() 方法。

最佳答案

您需要首先在 Oracle 中创建序列:

CREATE SEQUENCE USER_SEQUENCE START WITH 1 INCREMENT BY 10;

然后注释你的类,如下所示:

@Entity
@SequenceGenerator(name="USER_SEQUENCE_GENERATOR", sequenceName="USER_SEQUENCE", initialValue=1, allocationSize=10)
public class User {
    @Id
    @Column(name="USER_ID")
    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="USER_SEQUENCE_GENERATOR")
    private Long userId;
}

关于java - 序列生成器: JAVA/JPA/SPRING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52179162/

相关文章:

java - 如何解决@OneToMany关系中重复列名异常

java - 使用 JPA 时,数据库中会添加 2 个条目,而不是仅 1 个

java - JPA HSQL 不从扩展类中获取字段

java - 使用 JDBC 获取与 MySQL 的连接时为 "Too many Connections"

java - "/"的 Restful 路径用法

sql - oracle查询中如何获取字符串的前两个字符?

oracle - 有关触发器的帮助

java - Gradle jar : order of dependency jars and actual classes

java - 为什么setter方法不更新对象?

sql - 向查询结果中添加 "empty"行