67,513
社区成员
发帖
与我相关
我的任务
分享
对象时,控制台有打印Insert语句,且没有任何报错,Junit也是呈现绿条,当我在数据库中查看时,却没有数据,再怎么插入一样,找了好久的错误都没法解决。希望老师们能指点指点。
public interface DAO<T, ID extends Serializable> {
/**
* 保存实体
* @param entityClass 实体的类型
* @param entity 需要保存的实体
*/
public void save(T entity);
/**
* 更新实体
* @param entityClass 实体的类型
* @param entity
*/
public void update(T entity);
/**
* 根据主键值删除实体
* @param entity 被删除的实体
*/
public void delete(T entity);
/**
* 删除实体组
* @param entityIds 实体类数组
*/
public void delete(List<T> entities);
/**
* 根据主键值查找实体
* @param entityClass 实体的类型
* @param entityId 实体的ID
* @return
*/
public T findById( Class<T> entityClass,ID entityId);
/**
* 查找所有实体
* @param entityClass 实体类型
* @return
*/
public List<T> findAll(Class<T> entityClass);
}
public abstract class DaoImpl<T, ID extends Serializable> extends HibernateDaoSupport implements DAO<T, ID> {
@Override
public void delete(T entity) {
getHibernateTemplate().delete(entity);
}
@Override
public void delete(List<T> entities) {
getHibernateTemplate().deleteAll(entities);
}
@Override
public void save(T entity) {
System.out.println(entity.toString());
getHibernateTemplate().saveOrUpdate(entity);
}
@Override
public void update(T entity) {
getHibernateTemplate().save(entity);
}
@Override
public List<T> findAll(Class<T> entityClass) {
return (List<T>) getHibernateTemplate().find(
"from " + entityClass.getName());
}
@Override
public T findById(Class<T> entityClass, ID entityId) {
return (T) getHibernateTemplate().get(entityClass, entityId);
}
}
<!-- 配置sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!-- 配置事务管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="productTypeService" class="com.oa.model.service.impl.ProductTypeServiceBean">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
public class ProductType implements Serializable {
private static final long serialVersionUID = 7234906375106899518L;
/** 产品类别 **/
private Integer typeid;
/** 类别名称 **/
private String name;
/** 备注 ,用于谷歌搜索 **/
private String note;
/** 是否可见 ,默认是可见的 **/
private Boolean visible = true;
/** 所属父类别 **/
private ProductType parentType;
/**拥有的子类别**/
private Set<ProductType> childTypes;
// setXxx && getXxx()
}
<class name="com.oa.model.ProductType" table="t_producttype">
<id name="typeid" type="integer">
<generator class="native"/>
</id>
<property name="name" type="string" length="36" not-null="false"/>
<property name="note" type="string" length="255" />
<property name="visible" type="boolean" not-null="false"/>
<set name="childTypes" inverse="true" access="field">
<key column="parentTypeid"/>
<one-to-many class="com.oa.model.ProductType"/>
</set>
</class>
<bean id="productTypeService"class="com.oa.model.service.impl.ProductTypeServiceBean">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
@Override
public void save(T entity) {
System.out.println(entity.toString());
getHibernateTemplate().saveOrUpdate(entity);
}
@Override
public void update(T entity) {
getHibernateTemplate().save(entity);
}
public interface ProductTypeService extends DAO {
}
ApplicationContext atx = new ClassPathXmlApplicationContext("applicationContext.xml");
productTypeService = (ProductTypeService) atx.getBean("productTypeService");
ProductType type = new ProductType("fine", "google find");
productTypeService.save(type);