我正在尝试摆脱persistence.xml
Spring JPA
Web应用程序中的典型文件。到目前为止,我已经成功注入EntityManager
了以下内容:
@Configuration
@EnableTransactionManagement
public class JpaConfig {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(){
LocalContainerEntityManagerFactoryBean factoryBean
= new LocalContainerEntityManagerFactoryBean();
factoryBean.setDataSource( this.restDataSource() );
factoryBean.setPackagesToScan( new String[ ] { "com.jverstry" } );
factoryBean.setPersistenceUnitName("MyMy");
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(){
{
// JPA properties ...
}
};
factoryBean.setJpaVendorAdapter( vendorAdapter );
return factoryBean;
}
@Bean
public DataSource restDataSource(){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
dataSource.setUrl("jdbc:hsqldb:mem:testdb");
dataSource.setUsername("sa");
dataSource.setPassword("");
return dataSource;
}
@Bean
public PlatformTransactionManager transactionManager(){
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(
this.entityManagerFactoryBean().getObject() );
return transactionManager;
}
}
我设法移动了persistence.xml的属性作为数据源:
<properties>
...
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
但是如何设置上面剩下的两个hibernate属性?谢谢
Spring提供了一种使用AbstractJpaVendorAdapter
(setDatabase()
和setGenerateDdl()
,尽管setGenerateDdl()
不采用DDL模式)以与提供者无关的方式配置这些选项的方法。
另外,您可以将任意属性传递给LocalContainerEntityManagerFactory
使用setJpaProperties()
(或setJpaPropertyMap()
):
Properties props = new Properties();
props.put("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
props.put("hibernate.hbm2ddl.auto", "create");
factoryBean.setJpaProperties(props);
问题内容: 我刚刚在Windows上创建了我的第一个应用程序。 我如何给它一个图标? 似乎没有任何构建标记可以执行此操作,而且我知道golang不支持资源。 问题答案: 您可以使用akavel / rsrc之 类的工具来生成一个.syso文件,该文件中嵌入了指定的资源,旨在在构建Win32可执行文件时供Go链接器使用。 以lxn / walk应用程序为例,该应用程序将其他元数据嵌入其可执行文件中。
我正在为windows编程JavaFX应用程序,并希望在这些情况下看到应用程序图标 快捷图标(在桌面上,windows开始菜单上) 任务栏图标(即使应用程序固定在任务栏上) (可选).exe-图标 下面的代码似乎很好地完成了它的工作,但是当应用程序运行时,我右按任务栏选择“pin this program”,默认的咖啡杯又会显示出来。当右键单击任务栏项时,杯子就会显示出来-.- 编辑:越来越傻了…
Hibernate正在为TABLE_PER_CLASS继承生成临时表,但proc. oracle用户没有这些创建表权限,因此该方法不适合我们的项目。 Hibernate 5.2.8版本据说可以解决这个问题。我们更新了pom。xml相应地覆盖默认的starter hibernate版本设置。 我们仍然没有任何运气与以下财产。 应用属性也更新如下 ** ** 在spring boot应用程序中,此设置
1)第一个疑问与这样一个事实有关:在这个类中,对于每个CRUD方法,我都打开一个新的会话。 我之所以这样做是因为在本教程http://www.tutorialspoint.com/hibernate/hibernate_sessions.htm中我读到: Session对象是轻量级的,设计成每次需要与数据库交互时都要实例化。持久性对象通过会话对象保存和检索。会话对象不应该保持长时间打开,因为它们通
问题内容: 我正在尝试将Hibernate用于多线程应用程序,其中每个线程都检索一个对象并将其插入表中。我的代码如下所示。我每个线程都有本地hibernate会话对象,在每个InsertData中,我都执行beginTransaction和commit。 我面临的问题是很多次我收到“ org.hibernate.TransactionException:不支持嵌套事务” 由于我是hibernate
问题内容: 如何确保从hibernate.cfg.xml加载所有属性,然后以编程方式添加其他属性?我看到了以下代码片段,但它看起来像是全新的配置,而不是现有配置的补充。 问题答案: 您显示的代码段是您所需要的。只需使用您现有的配置,而不是创建一个新的配置即可。 如果不是您实例化配置(例如,spring),则需要扩展创建它的类。