繁体   English   中英

如何使用Java config在Intellij中配置Hibernate Console?

[英]How do I configure Hibernate Console in Intellij with java config?

我在Java中配置了持久性。 没有persistence.xml Intellij在“持久性”窗口中向我显示了entityManagerFactory和实体。 查询在应用程序中运行正常。

如何在Intellij中获取休眠控制台以运行查询?

我懂了

[2016-09-12 14:09:07] java.lang.NoSuchMethodError: org.hibernate.Session.createQuery(Ljava/lang/String;)Lorg/hibernate/Query

该方言为hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect

配置为:

@Configuration
@EnableTransactionManagement
@PropertySource({ "file:${view.config}" })
@ComponentScan({ "my.me.model" })
public class PersistenceConfig {

private static Logger logger = LoggerFactory.getLogger(PersistenceConfig.class);

@Autowired
private Environment env;

@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(){
    LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
    em.setDataSource(dataSource());
    em.setPackagesToScan("my.me.model");

    JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
    em.setJpaVendorAdapter(vendorAdapter);
    em.setJpaProperties(hibernateProperties());
    return em;
}

@Bean
@Autowired
public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
    JpaTransactionManager txManager = new JpaTransactionManager();
    txManager.setEntityManagerFactory(entityManagerFactory);
    return txManager;
}

@Bean
public DataSource dataSource() {
    BasicDataSource dataSource = new BasicDataSource();
    dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName"));
    dataSource.setUrl(env.getProperty("jdbc.url"));
    dataSource.setUsername(env.getProperty("jdbc.user"));
    dataSource.setPassword(env.getProperty("jdbc.password"));

    return dataSource;
}

@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
    return new PersistenceExceptionTranslationPostProcessor();
}


@SuppressWarnings("serial")
Properties hibernateProperties() {
    return new Properties() {
        {
            setProperty("hibernate.hbm2ddl.auto", env.getProperty("hibernate.hbm2ddl.auto"));
            setProperty("hibernate.dialect", env.getProperty("hibernate.dialect"));
            setProperty("hibernate.globally_quoted_identifiers", "true");
            setProperty("hibernate.show_sql", env.getProperty("hibernate.show_sql"));
        }
    };
}

现在可以在2106.3 EAP中使用。 答案是升级。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM