条件列表返回空列表但是oracle db中有行

时间:2015-05-26 19:56:07

标签: java oracle hibernate hql criteria

我在oracle Thin 11 g上运行sql语句“SELECT * FROM company”,它返回3行。

我已经正确配置了数据源,并按如下方式尝试了Query和Criteria,即使它们应该返回3行,它们都不会返回任何内容。 // import org.hibernate.Criteria;

1。的标准

 Criteria criteria = session.createCriteria(Company.class);
            criteria
                     .add(Restrictions.eq("companyName", companyName))
                     .add(Restrictions.eq("companyId", companyId));

List<Company> companyList  = criteria.list();//**THIS RETURNS 0 ROWS**

2。的 QUERY

Query query=session.createQuery("from Company where companyName= :companyName and companyId= :companyId");

           query.
                   setParameter("companyId",companyId).
                   setParameter("companyName", companyName);

List<Company> companyList  = query.list();//**THIS RETURNS 0 ROWS**

3. 查询中的SQL

Query query=session.createSQLQuery("SELECT * FROM Company");
List<Company> CompanyList  = query.list();//**THIS RETURNS 0 ROWS**

此处公司实体

// javax.persistence。*;

@Entity
@Table(name = "COMPANY")
public class Company {

    @Id
    @GeneratedValue(strategy= GenerationType.SEQUENCE, generator="COMPANY_SEQ")
    @SequenceGenerator(name="COMPANY_SEQ", sequenceName="COMPANY_SEQ",   allocationSize=1)
    @Column(name = "COMPANY_ID")
    int CompanyId;

    @Basic
    @Column (name ="COMPANY_NAME")
    private String companyName;


    @Basic
    @Column (name ="COMPANY_ID")
    private Integer companyId;// The login id of user whose data is updated

    @Basic
    @Column (name ="UPDATED_BY")
    private String updatedBy;

    @Basic
    @Column (name ="UPDATE_DATE")
    private Date updateDate;

     //Default no-arg constructor and another constructor with all the fields.
    //default getters and Setters
}

我缺少什么,为什么不是所有的hibernate查询都没有返回行?感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

感谢@ JBNizet对我的问题的评论。问题是我没有在SQL Developer中提交数据。

确保&#39;承诺&#39;您正在使用的DB Developer上的事务。

以下是来自@JBNizet

的确切评论
  

即使交易没有,交易也会看到自己的变化   已经承诺了。其他并发交易未见未提交   第一笔交易的变化。这是交易的原则   隔离(至少设置为READ_COMMITTED)。执行   {/ 1}}在SQL开发人员中确定。 -

答案 1 :(得分:1)

我遇到了同样的问题。我只是忘了在hibernate.cfg.xml中添加mapping-class。 我做到了,效果很好