有没有一种方法可以从实体本身排序最大值和最小值
qyuhtwio1#
我不认为有可能创造一个特定的序列 MINVALUE 或者 MAXVALUE 使用jpa或hibernate。此任务的jpa特定注解是 SequenceGenerator 不接受 MINVALUE 或者 MAXVALUE . 它可以选择接受 initialValue 它影响序列的“start with”值,并可能隐式地设置 MINVALUE 或者 MAXVALUE .例如,oracle数据库说 CREATE SEQUENCE 声明:从…开始指定要生成的第一个序列号。使用此子句以大于其最小值的值开始升序,或以小于其最大值的值开始降序。对于升序,默认值是序列的最小值。对于降序序列,默认值是序列的最大值。此整数值可以有28位或更少的数字。有一个特定于hibernate的api GenericGenerator 以及 SequenceStyleGenerator 它可以用来创建一个序列(见一个例子),但它们似乎也不接受 MINVLAUE 或者 MAXVALUE 作为参数。最后,快速查看hibernate的oracledb代码表明 MINVALUE 以及 MAXVALUE 基于提供的 initialValue 正如上面的oracle文档所示。例如,以下是相关代码:
MINVALUE
MAXVALUE
SequenceGenerator
initialValue
CREATE SEQUENCE
GenericGenerator
SequenceStyleGenerator
MINVLAUE
protected String getCreateSequenceString(String sequenceName, int initialValue, int incrementSize) { if ( initialValue < 0 && incrementSize > 0 ) { return String.format( "%s minvalue %d start with %d increment by %d", getCreateSequenceString( sequenceName ), initialValue, initialValue, incrementSize ); } else if ( initialValue > 0 && incrementSize < 0 ) { return String.format( "%s maxvalue %d start with %d increment by %d", getCreateSequenceString( sequenceName ), initialValue, initialValue, incrementSize ); } else { return String.format( "%s start with %d increment by %d", getCreateSequenceString( sequenceName ), initialValue, incrementSize ); } }
我假设除了支持序列的oracle之外,其他数据库也应该如此。
1条答案
按热度按时间qyuhtwio1#
我不认为有可能创造一个特定的序列
MINVALUE
或者MAXVALUE
使用jpa或hibernate。此任务的jpa特定注解是
SequenceGenerator
不接受MINVALUE
或者MAXVALUE
. 它可以选择接受initialValue
它影响序列的“start with”值,并可能隐式地设置MINVALUE
或者MAXVALUE
.例如,oracle数据库说
CREATE SEQUENCE
声明:从…开始
指定要生成的第一个序列号。使用此子句以大于其最小值的值开始升序,或以小于其最大值的值开始降序。对于升序,默认值是序列的最小值。对于降序序列,默认值是序列的最大值。此整数值可以有28位或更少的数字。
有一个特定于hibernate的api
GenericGenerator
以及SequenceStyleGenerator
它可以用来创建一个序列(见一个例子),但它们似乎也不接受MINVLAUE
或者MAXVALUE
作为参数。最后,快速查看hibernate的oracledb代码表明
MINVALUE
以及MAXVALUE
基于提供的initialValue
正如上面的oracle文档所示。例如,以下是相关代码:我假设除了支持序列的oracle之外,其他数据库也应该如此。