hibernate插入问题

我有一张表,有id(0001,0002),地名:(如武汉市,孝感市),上级地名id:(如湖北省是001);实体类Place属性有:id,name,Place,请问如何利用... 我有一张表,有id(0001,0002),地名:(如武汉市,孝感市),上级地名id:(如湖北省是001);实体类Place属性有:id,name,Place,请问如何利用hibernate插入一条数据(如0003,宜昌市,湖北省的Place对象),求大神出现。 展开
 我来答
慕娥
2013-07-25
知道答主
回答量:44
采纳率:0%
帮助的人:31.5万
展开全部
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();
    }
百度网友f423407
2013-07-25 · TA获得超过314个赞
知道小有建树答主
回答量:218
采纳率:50%
帮助的人:160万
展开全部
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();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tytwddd
2013-07-25 · TA获得超过110个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:134万
展开全部
你不能够自己做为自己的一个属性啊,这样就死循环了
更多追问追答
追问
上级地名id可为空。
追答
建议你把上级地名id不要做关联,先把省的数据加进数据库,加入市时再选择相应的省。要不你这没法写映射文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
w6362431
2013-07-25 · TA获得超过157个赞
知道答主
回答量:173
采纳率:0%
帮助的人:50.2万
展开全部
直接new place对象 存不就可以了嘛。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式