Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重写的SequenceHilGenerator不更新oracle序列_Java_Spring_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

Java 重写的SequenceHilGenerator不更新oracle序列

Java 重写的SequenceHilGenerator不更新oracle序列,java,spring,hibernate,jpa,spring-data-jpa,Java,Spring,Hibernate,Jpa,Spring Data Jpa,我需要生成id,以防id未通过,如果id通过,我应该保存实体。我尝试创建GenericGenerator来完成此操作。我的POJO类如下所示: 实体类 发电机类 如果我通过并更新现有id,我可以保存我的id。现在的问题是生成的序列没有在“MY_SEQ”中更新。当我执行“select*from MY_SEQ.nextVal from dual”时,我找不到其中更新的序列。相反,只存在生成的非常旧的序列。如何使其也更新序列。请告诉我怎么做 @Entity @Table(name = "My

我需要生成id,以防id未通过,如果id通过,我应该保存实体。我尝试创建GenericGenerator来完成此操作。我的POJO类如下所示:

实体类 发电机类 如果我通过并更新现有id,我可以保存我的id。现在的问题是生成的序列没有在“MY_SEQ”中更新。当我执行“select*from MY_SEQ.nextVal from dual”时,我找不到其中更新的序列。相反,只存在生成的非常旧的序列。如何使其也更新序列。请告诉我怎么做

@Entity
@Table(name = "MyTable")
public class MyTable {

    @Id
    @GeneratedValue( strategy=GenerationType.SEQUENCE,generator = "SEQ")
    @GenericGenerator(name="SEQ" , strategy="com.mypackage.util.UseExistingOrGenerateIdGenerator")
    @Column(name = "ID")
    private int id
    
    //Getters & setters
    
}
public class UseExistingOrGenerateFileIdGenerator extends SequenceHiLoGenerator {
@Override
public Serializable generate(SessionImplementor session, Object object) throws HibernateException {
    Serializable id = session.getEntityPersister(null, object).getClassMetadata().getIdentifier(object, session);
    return id != null ? id : super.generate(session, object);
}

@Override
public void configure(Type type, Properties params, Dialect dialect) throws MappingException {

    params.put(org.hibernate.id.SequenceGenerator.SEQUENCE, "MY_SEQ");

    params.put(SequenceHiLoGenerator.MAX_LO, String.valueOf("1"));

    super.configure(type, params, dialect);
}