恶劣围绕 2016-03-24 13:01 采纳率: 100%
浏览 496

怎样更新hibernate多对一中的一方

还是那个问题下午把查看多对一中的一方(所属类别)问题解决了但是更新不了(所属类别)?是因为我直接把对象set进去了还是别的问题?medicine是多方在其实体类中有属性private Category category;,category是一方
medicine.hbm.xml:
图片说明
category.hbm.xml:
图片说明
action类:
public class MedicineUpdateAction extends ActionSupport {

private int id; // 药品id

private String name; // 药品名称

private String medNu; // 药品编码

private String factoryAdd; // 出厂地址

private String description; // 描述

private double price; // 价格

private int medCount; // 数量

private Category category;//类别

private MedicineService medicineService = new MedicineServiceImpl();

getter和setter方法...

@Override

public String execute() throws Exception {

Medicine medicine = new Medicine();

medicine.setId(id);

medicine.setMedNu(medNu);

medicine.setName(name);

medicine.setFactoryAdd(factoryAdd);

medicine.setDescription(description);

medicine.setPrice(price);

medicine.setMedCount(medCount);

medicine.setCategory(category);

medicineService.updateMedicine(medicine);// 更新

ServletActionContext.getRequest().setAttribute("medicine", medicine);

this.addActionMessage("更新成功!");

return INPUT;

}
}

medicineserviceimpl类:

@Override

public void updateMedicine(Medicine medicine) {

medicineDAO.updateMedicine(medicine);
}

medicineDAOImpl类:

@Override

public void updateMedicine(Medicine medicine) {

Session session = HibernateSessionFactory.getSession();// 获得Session对象

Transaction transaction = null;// 声明一个事务对象

try {

transaction = session.beginTransaction();// 开启事务

session.update(medicine);// 更新药品信息

transaction.commit();// 提交事务

} catch (Exception ex) {

ex.printStackTrace();

transaction.rollback();// 事务回滚

}

HibernateSessionFactory.closeSession();// 关闭Session对象

}

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
    • ¥15 onvif+openssl,vs2022编译openssl64