我有一个名为 SEQ_A 的预言序列,范围从 1 到 100。 我想以这样的方式处理我的 JPA 代码:如果 SEQ_A 中的范围已达到最大数量,则应用程序应从 SEQ_B 读取,如果 SEQ_B 已达到最大数量,则应从 SEQ_C 读取,依此类推。
我应该如何使用 JPA 在 Java 代码中处理这个问题。
@Repository
public interface SequenceRepository extends JpaRepository<SeqValue, Long>{
@Query(value = "select 'A' || SEQ_A.nextval from dual", native = true)
Long getNextSequence();
}
SeqValue 类:
@Entity
public class SeqValue{
@Id
private Long id;
private Long sequenceValue;
//constructor, getter, setter
}
在我的服务类中,我调用 getNextSequence() 并将前缀 A 附加到序列号,如何确保如果 SEQ_A 已达到最大限制(例如 100),那么它应该使用 SEQ_B 并将前缀 B 附加到序列号,一旦 B 达到其极限,则使用 SEQ_C 等等。
@Repository
public interface SequenceRepository extends JpaRepository<SeqValue, Long> {
@Query(value = "SELECT CASE WHEN SEQ_A.nextval <= 100 THEN 'A'||SEQ_A.nextval WHEN SEQ_B.nextval <= 100 THEN 'B'||SEQ_B.nextval ELSE 'C'||SEQ_C.nextval END FROM dual", native = true)
String getNextSequence();
}