当我尝试开始交易时
entityManager.getTransaction().begin();
在抽象道中,我得到
java.lang.UnsupportedOperationException: The application must supply JDBC connections
我的坚持.xml
<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_2_0.xsd"
version="2.0">
<persistence-unit name="pu" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value = "create-drop"/>
</properties>
</persistence-unit>
</persistence>
我的休眠属性
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ewp?createIfNotExist=true
jdbc.username=root
jdbc.password=root
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.show_sql=true
hibernate.format_sql=false
hibernate.hbm2ddl.auto=create-drop
实体管理器工厂豆:
@Bean
public EntityManagerFactory entityManagerFactory(){
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("pu");
return entityManagerFactory;
}
实体管理器 bean:
@Bean
public EntityManager entityManager(){
return entityManagerFactory.createEntityManager();
}
在休眠站点中,您的属性名称看起来不正确。应该是,
"hibernate.connection.driver_class" for JDBC driver class
"hibernate.connection.url" for JDBC URL
"hibernate.connection.username" for database user
"hibernate.connection.password" for database user password
更正您的属性名称。
如果您使用带有休眠模板的 spring orm,则需要提供如下配置。我们使用Hibernate-entitymanager作为JPA实现。Hibernate-entityManager 依赖于 Hibernate-core,这就是为什么我们不必明确地将 Hibernate-core 放在 Pom 中.xml的原因。它通过 maven 传递依赖项被拉入我们的项目。
春天.xml
<beans xmlns=.....>
<context:component-scan base-package="com.town.practice" />
<context:annotation-config />
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.hsqldb.jdbcDriver" />
<property name="url" value="jdbc:hsqldb:mem://productDb" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:packagesToScan="com.town.practice.model"
p:dataSource-ref="dataSource"
>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="generateDdl" value="true" />
<property name="showSql" value="true" />
</bean>
</property>
</bean>
<!-- Transactions -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<!-- enable the configuration of transactional behavior based on annotations -->
<tx:annotation-driven transaction-manager="transactionManager" />
</beans>