初学hibernate ,花了点时间写了个一对一关系的两个表,遇到了无法显示查询内容的小问题,四处找文档没找到,现已经解决,结果如下: 调用程序如下: import java.util.Iterator; public class Client { public Client() { } public static void main(String[] args){ BlogMain blogMain=new BlogMain(); try{ blogMain.exportTables(); blogMain.configure(); Blog blog = blogMain.createBlog("test"); blogMain.createBlogItem(blog,"test1","string1"); blogMain.createBlogItem(blog,"test2","string2"); blogMain.createBlogItem(blog,"test3","string3"); List list=blogMain.listBlogsAndRecentItems(); Iterator it=list.iterator(); while (it.hasNext()){ Object[] Row = (Object[])it.next(); Blog blogtest=(Blog)Row[0]; BlogItem blogItem=(BlogItem)Row[1]; System.out.println(blogtest.getId()+":"+blogItem.getId()+":"+blogItem.getText()); } } catch(HibernateException ex){ throw new RuntimeException("Exception building SessionFactory: " + ex.getMessage(), ex); } } } 其中 blogMain.listBlogsAndRecentItems();代码如下 public List listBlogsAndRecentItems() throws HibernateException {
Session session = _sessions.openSession(); Transaction tx = null; List result = null; try { tx = session.beginTransaction(); Query q = session.createQuery( "from Blog as blog " + "inner join blog.items as blogItem " + "where blogItem.datetime > :minDate" );
Calendar cal = Calendar.getInstance(); cal.roll(Calendar.MONTH, false); q.setCalendar("minDate", cal);
result = q.list(); tx.commit(); } catch (HibernateException he) { if (tx!=null) tx.rollback(); throw he; } finally { session.close(); } return result; } 查询显示结果如下: 1:2:string1
1:3:string2
1:4:string3

|