Java 缺少序列或表:hibernate#u序列和I don';我不需要它

Java 缺少序列或表:hibernate#u序列和I don';我不需要它,java,spring,hibernate,jpa,spring-data,Java,Spring,Hibernate,Jpa,Spring Data,我正在为每个表使用hibernate 4.2.7、Oracle 12c和序列,但我的应用程序仍然要求我使用这个序列 每个表使用自己的顺序,如下所示: @Entity @Table(name = "foo") @SequenceGenerator(name = "foo_seq", sequenceName = "foo_seq", initialValue = 1) public class Foo implements Serializable { private static fi

我正在为每个表使用hibernate 4.2.7、Oracle 12c和序列,但我的应用程序仍然要求我使用这个序列

每个表使用自己的顺序,如下所示:

@Entity
@Table(name = "foo")
@SequenceGenerator(name = "foo_seq", sequenceName = "foo_seq", initialValue = 1)
public class Foo implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(generator = "foo_seq", strategy = GenerationType.SEQUENCE)
    private Long id;

    ...
}
我的配置:

@Configuration
@EnableAspectJAutoProxy
@EnableSpringDataWebSupport
@EnableTransactionManagement
@EnableJpaRepositories(basePackageClasses = Application.class)
@EnableJpaAuditing
@ComponentScan(basePackageClasses = Application.class, excludeFilters = @Filter({Controller.class}))
@PropertySource(value = {"classpath:foo.properties"})
public class Application {

    @Inject
    private Environment env;

    @Bean
    public DataSource dataSource() {

        DataSource dataSource = new BasicDataSource();
            ((BasicDataSource) dataSource).setDriverClassName(env.getProperty("jdbc.driverClassName"));
            ((BasicDataSource) dataSource).setUrl(env.getProperty("jdbc.url"));
            ((BasicDataSource) dataSource).setUsername(env.getProperty("jdbc.user"));
            ((BasicDataSource) dataSource).setPassword(env.getProperty("jdbc.pass"));
        return dataSource;
    }


    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
        HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        vendorAdapter.setGenerateDdl(Boolean.TRUE);
        vendorAdapter.setShowSql(Boolean.TRUE);
        factory.setDataSource(dataSource());
        factory.setJpaVendorAdapter(vendorAdapter);
        factory.setPackagesToScan(Application.class.getPackage().getName() + ".domain");
        Properties jpaProperties = new Properties();
        jpaProperties.put("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"););
        jpaProperties.put("hibernate.dialect", env.getProperty("hibernate.dialect"));
        factory.setJpaProperties(jpaProperties);
        factory.afterPropertiesSet();
        factory.setLoadTimeWeaver(new InstrumentationLoadTimeWeaver());
        return factory;
    }

    ...
}
我得到以下错误:

原因:org.hibernate.HibernateException:缺少序列或 表:在 org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1316) [hibernate-core-4.2.7.Final.jar:4.2.7.Final] org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:155) [hibernate-core-4.2.7.Final.jar:4.2.7.Final] org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:509) [hibernate-core-4.2.7.Final.jar:4.2.7.Final] org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1794) [hibernate-core-4.2.7.Final.jar:4.2.7.Final] EntityManagerFactoryImpl.java:96 [hibernate-entitymanager-4.2.7.Final.jar:4.2.7.Final] org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:914) [hibernate-entitymanager-4.2.7.Final.jar:4.2.7.Final]。。。107更多


我使用JBoss6.2。为什么这个序列会问我是否在任何地方都不使用?

我发现了问题。我有一个扩展AbstractPersistable的自定义类。

我无法理解您的答案。问题是因为您有一个自定义类,
扩展了AbstractPersistable
,或者它是您问题的解决方案?