
最后,我提出了以下解决方案:
- 创建一个扩展了以下内容的序列信息提取器
SequenceInformationExtractorOracleDatabaseImpl
:
public class AppSequenceInformationExtractor extends SequenceInformationExtractorOracleDatabaseImpl { public static final AppSequenceInformationExtractor INSTANCE = new AppSequenceInformationExtractor(); @Override protected Long resultSetMinValue(ResultSet resultSet) throws SQLException { return resultSet.getBigDecimal("min_value").longValue(); } }- 创建一个扩展了的休眠方言
Oracle12cDialect
:
public class AppOracleDialect extends Oracle12cDialect { @Override public SequenceInformationExtractor getSequenceInformationExtractor() { return AppSequenceInformationExtractor.INSTANCE; } @Override public String getQuerySequencesString() { return "select * from user_sequences"; } }然后在
persistence.xml
:中使用此方言:
至于方法的
getQuerySequencesString()替代和用法,
USER_SEQUENCES而不是
ALL_SEQUENCES值得商(的(请参阅HHH-13322和HHH-14022)。但是,就我而言,
USER_SEQUENCES用法更可取。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)