Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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 获取错误:平台数据库平台不支持NativeSequence_Java_Jpa_Junit_Eclipselink_Spring Batch - Fatal编程技术网

Java 获取错误:平台数据库平台不支持NativeSequence

Java 获取错误:平台数据库平台不支持NativeSequence,java,jpa,junit,eclipselink,spring-batch,Java,Jpa,Junit,Eclipselink,Spring Batch,我正在尝试为JavaSpring批处理应用程序DAO层编写junit测试用例。当我使用自定义序列生成器配置数据层对象并运行测试用例时,我得到了以下异常 异常说明:SEQ_EMPLOYEE_ID:平台数据库平台不支持NativeSequence 对于数据持久性,我使用JPA+EclipseLink 下面提到了我用于Junit的配置文件 上课 JunitPersistence.xml 本机序列对象特定于所使用的数据库-您需要指定本机序列工作时应使用的正确数据库平台。如果数据库不是从Spring获取或

我正在尝试为JavaSpring批处理应用程序DAO层编写junit测试用例。当我使用自定义序列生成器配置数据层对象并运行测试用例时,我得到了以下异常

异常说明:SEQ_EMPLOYEE_ID:平台数据库平台不支持NativeSequence

对于数据持久性,我使用JPA+EclipseLink

下面提到了我用于Junit的配置文件

上课

JunitPersistence.xml


本机序列对象特定于所使用的数据库-您需要指定本机序列工作时应使用的正确数据库平台。如果数据库不是从Spring获取或由Spring设置的,则需要添加persistence属性来指定数据库。

添加到persistence XML中。它起作用了!!谢谢
@Entity
@Table(name = "EMPLOYEE")
@NamedQuery(name = "test.test",
        query = "SELECT d FROM EmployeeDO d where d.status = 'COMPLETED'")
public class EmployeeDO implements Serializable {
    private static final long serialVersionUID = 1L;

    @SequenceGenerator(name = "employeeIdSequence", allocationSize = 1,
            sequenceName = "SEQ_EMPLOYEE_ID")
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "employeeIdSequence")
    @Column(name = "BATCH_ID")
    private long batchId;

}
persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
    <persistence-unit name="eclipseLinkPunitEmployee" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

        <class>org.batch.model.data.EmployeeDO</class>

        <exclude-unlisted-classes>true</exclude-unlisted-classes>
          <properties>
            <property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
            <property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:dataSource"/>
            <property name="javax.persistence.jdbc.user" value="sa"/>
            <property name="javax.persistence.jdbc.password" value=""/>
            <property name="eclipselink.ddl-generation" value="create-tables"/>
            <property name="eclipselink.id-validation" value="NULL"/>
        </properties>
    </persistence-unit>
</persistence>
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
  </bean>

  <bean id="entityManagerFactory"   class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="eclipseLinkPunitEmployee" />
    <property name='dataSource' ref='junitDatasource' />
    <property name="persistenceXmlLocation" value="classpath:JunitPersistence.xml" />
    <property name="jpaPropertyMap">
        <map>
            <entry key="eclipselink.weaving" value="false" />
        </map>
    </property>
  </bean>  
  <jdbc:embedded-database id="junitDatasource" type="HSQL">
    <jdbc:script location="classpath:sequences.sql"/>
  </jdbc:embedded-database>
CREATE SEQUENCE SEQ_EMPLOYEE_ID START WITH 1 increment by 1;
CREATE TABLE DUAL (DUMMY DECIMAL);
INSERT INTO DUAL VALUES(1);
SET DATABASE SQL SYNTAX ORA TRUE;