我在oracle Thin 11 g上运行sql语句“SELECT * FROM company”,它返回3行。
我已经正确配置了数据源,并按如下方式尝试了Query和Criteria,即使它们应该返回3行,它们都不会返回任何内容。 // import org.hibernate.Criteria;
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**
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**
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查询都没有返回行?感谢您的帮助。
答案 0 :(得分:3)
感谢@ JBNizet对我的问题的评论。问题是我没有在SQL Developer中提交数据。
确保&#39;承诺&#39;您正在使用的DB Developer上的事务。
以下是来自@JBNizet
的确切评论即使交易没有,交易也会看到自己的变化 已经承诺了。其他并发交易未见未提交 第一笔交易的变化。这是交易的原则 隔离(至少设置为READ_COMMITTED)。执行 {/ 1}}在SQL开发人员中确定。 -
答案 1 :(得分:1)
我遇到了同样的问题。我只是忘了在hibernate.cfg.xml中添加mapping-class。 我做到了,效果很好