小编iry*_*din的帖子

使用提供的ID使用Hibernate保存新对象

我想使用Hibernate将一些对象保存到具有预定义ID的数据库.是否可以使用Hibernate会话的save方法来实现?

我知道有以下解决方法:

1)使用必要的insert语句执行SQL脚本:

insert into MyObj(id,name) values (100,'aaa'), (101,'bbb');
Run Code Online (Sandbox Code Playgroud)

2)在Hibernate中使用SQL查询:

public static boolean createObj(Long id, String name) {
  Session session = HibernateUtil.getSessionFactory().getCurrentSession();
  if (session.get(MyObj.class, id) == null) {        
    session.beginTransaction();
    SQLQuery sqlQuery = session.createSQLQuery
      ("insert into myobj(id,name) values(?,?)");
    sqlQuery.setLong(0, id);
    sqlQuery.setString(1, name);
    sqlQuery.executeUpdate();
    session.getTransaction().commit();
    return true;
  } else {
    return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

但是:没有SQLQuery可以吗?

在第11.2节的Hibernate参考中.使对象持久存在代码示例:

或者,您可以使用save()的重载版本来分配标识符.

DomesticCat pk = new DomesticCat();
pk.setColor(Color.TABBY);
pk.setSex('F');
pk.setName("PK");
pk.setKittens( new HashSet() );
pk.addKitten(fritz);
sess.save( pk, new Long(1234) );
Run Code Online (Sandbox Code Playgroud)

但我找不到如何做到这一点的例子.

那么,是否可以使用Hibernate不使用SQL查询将带有提供的ID的新对象保存到数据库?如果是,那怎么样?如何在Hibernate引用中提到的重载会话方法save()? …

java session hibernate

8
推荐指数
1
解决办法
2万
查看次数

什么是金丝雀监测?

什么是金丝雀监测?这是什么意思?金丝雀为什么?

在这里找到了一个金丝雀监控工具:http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/tool/Canary.java? view =标记

monitoring

3
推荐指数
1
解决办法
2854
查看次数

标签 统计

hibernate ×1

java ×1

monitoring ×1

session ×1