Java 缺少序列或表:hibernate#u序列和I don';我不需要它
我正在为每个表使用hibernate 4.2.7、Oracle 12c和序列,但我的应用程序仍然要求我使用这个序列 每个表使用自己的顺序,如下所示: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
@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
,或者它是您问题的解决方案?