怎样更新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对象

}