
基于注解的 hibernate 如何设置自动提交
使用基于注解的spring3.0+hibernate做项目,操作数据库总是不成功,增加和删除直接没反应,还不报错,删除则显示java.lang.IllegalArgume...
使用基于注解的spring3.0 + hibernate 做项目,操作数据库总是不成功,增加和删除直接没反应,还不报错,删除则显示java.lang.IllegalArgumentException: Removing a detached instance……所以我怀疑就是不能自动提交事务 各位有没有谁知道这个怎么配,配置文件:applicationContext.xml persistence.xml 等 手动提交也行 怎么写?
是用的jpa的entitymanager的方法
@PersistenceContext
public void setEntityManager(EntityManager entityMgr) {
this.entityMgr = entityMgr;
}
public void add(Object entity) {
entityMgr.persist(entity);
}
public Object update(Object entity) {
return entityMgr.merge(entity);
}
public void delete(Object entity) {
getEntityMgr().remove(getEntityMgr().merge(entity));
// entityMgr.remove(entity);
}
public <T> T findById(Class<T> entityClass, Object id) {
return entityMgr.find(entityClass, id);
} 展开
是用的jpa的entitymanager的方法
@PersistenceContext
public void setEntityManager(EntityManager entityMgr) {
this.entityMgr = entityMgr;
}
public void add(Object entity) {
entityMgr.persist(entity);
}
public Object update(Object entity) {
return entityMgr.merge(entity);
}
public void delete(Object entity) {
getEntityMgr().remove(getEntityMgr().merge(entity));
// entityMgr.remove(entity);
}
public <T> T findById(Class<T> entityClass, Object id) {
return entityMgr.find(entityClass, id);
} 展开
2个回答
展开全部
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<!-- key的名字前面都要加hibernate. -->
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
<property name="packagesToScan">
<value>com.bjsxt.po</value>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" >
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver">
</property>
<property name="url" value="jdbc:mysql://localhost:3306/test"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<!-- key的名字前面都要加hibernate. -->
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
<property name="packagesToScan">
<value>com.bjsxt.po</value>
</property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" >
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询