解决方案 »

  1.   

    检索单个对象
    Query和Criteria都提供了返回单个对象的方法uniqueResult().
    先调用setMaxResult(1)方法,把最大检索数目设为1,在调用uniqueResult()方法。Hx hx = (Hx)session.createQuery("from Hx")
                .setMaxResults(1)
                .uniqueResult();参考
    http://blog.csdn.net/sunappro/article/details/1843467
      

  2.   

    你可以把 List 的两条数据看作下面的代码,对比Object a来说只是多占用了点内存,效率的问题还是要在你写的SQL中优化。Object[] obj = {new A(), new A()};
    int i = 2;
      

  3.   


    如果说并发量大了,就为了查一条数据,我使用List<A> 返回一个列表,下面的方法:
    getSession().createQuery(
    "from " + objName + " o where o."+propertyName+"=:value")
    .setParameter("value", value).list();
    会有影响吧?但是我不知道数据库符合条件的是否只有一条数据,只查询单条的话 可能会报错的呀??
      

  4.   


    查单条,你报错,那就查List 然后再去筛选了...效率只是在查询sql上。 一般不会有啥问题
      

  5.   

    createQuery这个也是个数组对象(要不然也不能转换成list),一条数据与两条数据的写入之间所消耗的时间几乎可以忽略不计,你可以用System.arraycopy去测试读写所消耗的时间,这两种都会面临高并发,但是应该是扩容或者分布去解决问题而不是这种小的细节上。