EssentialsHSQLPlatformWithNativeSequence.java
上传用户:dezhong
上传日期:2022-08-10
资源大小:167k
文件大小:1k
源码类别:

Java编程

开发平台:

Java

  1. package org.springframework.samples.petclinic.toplink;
  2. import java.io.IOException;
  3. import java.io.Writer;
  4. import oracle.toplink.essentials.exceptions.ValidationException;
  5. import oracle.toplink.essentials.platform.database.HSQLPlatform;
  6. import oracle.toplink.essentials.queryframework.ValueReadQuery;
  7. /**
  8.  * Subclass of the TopLink Essentials default HSQLPlatform class, using native
  9.  * HSQLDB identity columns for id generation.
  10.  *
  11.  * <p>Necessary for PetClinic's default data model, which relies on identity
  12.  * columns: this is uniformly used across all persistence layer implementations
  13.  * (JDBC, Hibernate, and JPA).
  14.  *
  15.  * @author Juergen Hoeller
  16.  * @author <a href="mailto:james.x.clark@oracle.com">James Clark</a>
  17.  * @since 1.2
  18.  */
  19. public class EssentialsHSQLPlatformWithNativeSequence extends HSQLPlatform {
  20. private static final long serialVersionUID = -55658009691346735L;
  21. public EssentialsHSQLPlatformWithNativeSequence() {
  22. // setUsesNativeSequencing(true);
  23. }
  24. public boolean supportsNativeSequenceNumbers() {
  25. return true;
  26. }
  27. public boolean shouldNativeSequenceAcquireValueAfterInsert() {
  28. return true;
  29. }
  30. public ValueReadQuery buildSelectQueryForNativeSequence() {
  31. return new ValueReadQuery("CALL IDENTITY()");
  32. }
  33. public void printFieldIdentityClause(Writer writer) throws ValidationException {
  34. try {
  35. writer.write(" IDENTITY");
  36. }
  37. catch (IOException ex) {
  38. throw ValidationException.fileError(ex);
  39. }
  40. }
  41. }