hibernate插入问题
我有一张表,有id(0001,0002),地名:(如武汉市,孝感市),上级地名id:(如湖北省是001);实体类Place属性有:id,name,Place,请问如何利用...
我有一张表,有id(0001,0002),地名:(如武汉市,孝感市),上级地名id:(如湖北省是001);实体类Place属性有:id,name,Place,请问如何利用hibernate插入一条数据(如0003,宜昌市,湖北省的Place对象),求大神出现。
展开
展开全部
PlaceDAO placeDao;
String superID = "001";
Place place = new Place("0003","宜昌市");
placeDAO.save(place, superID);
重写PlaceDAO的save方法如下:
public void save(Place place, String superID) {
try{
log.debug("saving Place instance");
Query query = getSession().createQuery("update Place set superID = ? where ID =?;");
query.setString(0, superID);
query.setString(1, place.getId());
Transaction t = placeDao.getSession().beginTransaction();
getSession().save(place); //保存‘宜昌市’信息
query.executeUpdate();//写入上级ID信息
t.commit();
session.flush();
session.clear();
log.debug("save successful");
}catch (RuntimeException re) {
log.error("save failed", re);
throw re;
}finally{
session.close();
}
}
展开全部
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
session.begenTranction();
Place p = new Place();
p.setid(0003);
....
session.save(p);
session.getTranction().commit();
SessionFactory sf = cfg.buildSessionFactory();
Session session = sf.openSession();
session.begenTranction();
Place p = new Place();
p.setid(0003);
....
session.save(p);
session.getTranction().commit();
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你不能够自己做为自己的一个属性啊,这样就死循环了
更多追问追答
追问
上级地名id可为空。
追答
建议你把上级地名id不要做关联,先把省的数据加进数据库,加入市时再选择相应的省。要不你这没法写映射文件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接new place对象 存不就可以了嘛。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询