[b]HIbernate分页[/b]
如果你需要指定结果集的范围(希望返回的最大行数/或开始的行数),应该使用Query接口提供的方法:
Query q = sess.createQuery("from DomesticCat cat");
q.setFirstResult(20);
q.setMaxResults(10);
List cats = q.list();
[b]Hibernate在两个不同数据库间复制对象[/b]
偶尔会用到不重新生成持久化标识(identifier),将持久实例以及其关联的实例持久到不同的数据库中的操作。
//retrieve a cat from one database
Session session1 = factory1.openSession();
Transaction tx1 = session1.beginTransaction();
Cat cat = session1.get(Cat.class, catId);
tx1.commit();
session1.close();
//reconcile with a second database
Session session2 = factory2.openSession();
Transaction tx2 = session2.beginTransaction();
session2.replicate(cat, ReplicationMode.LATEST_VERSION);
tx2.commit();
session2.close();
ReplicationMode决定在和数据库中已存在记录由冲突时,replicate()如何处理。
ReplicationMode.IGNORE - 忽略它
ReplicationMode.OVERWRITE - 覆盖相同的行
ReplicationMode.EXCEPTION - 抛出异常
ReplicationMode.LATEST_VERSION - 如果当前的版本较新,则覆盖,否则忽略
如果你需要指定结果集的范围(希望返回的最大行数/或开始的行数),应该使用Query接口提供的方法:
Query q = sess.createQuery("from DomesticCat cat");
q.setFirstResult(20);
q.setMaxResults(10);
List cats = q.list();
[b]Hibernate在两个不同数据库间复制对象[/b]
偶尔会用到不重新生成持久化标识(identifier),将持久实例以及其关联的实例持久到不同的数据库中的操作。
//retrieve a cat from one database
Session session1 = factory1.openSession();
Transaction tx1 = session1.beginTransaction();
Cat cat = session1.get(Cat.class, catId);
tx1.commit();
session1.close();
//reconcile with a second database
Session session2 = factory2.openSession();
Transaction tx2 = session2.beginTransaction();
session2.replicate(cat, ReplicationMode.LATEST_VERSION);
tx2.commit();
session2.close();
ReplicationMode决定在和数据库中已存在记录由冲突时,replicate()如何处理。
ReplicationMode.IGNORE - 忽略它
ReplicationMode.OVERWRITE - 覆盖相同的行
ReplicationMode.EXCEPTION - 抛出异常
ReplicationMode.LATEST_VERSION - 如果当前的版本较新,则覆盖,否则忽略