我想消除我收到的数据中的重复(我将数据转换为Objects(Company.java
)并通过Hibernate将它们存储在表中)。
每当有新数据进入时,我想通过查询检查所有条目。在这种情况下,我使用uniquiResult()
方法来检查数据是否已经在表中。
然后,如果数据不存在,则使用数据创建新的Company
对象,并将Company
对象保存到会话中。
但是,如果数据已存在,如何获取现有条目并将其转换为对象?
我的代码如下:
Company company;
if(session
.createQuery("from company where company_name=:placeholder")
.setParameter("placeholder", data.getCompanyName())
.uniqueResult()
!=null){
company = ????;
} else {
company = new Company(data.getCompanyName());
session.save(company);
}
谢谢。
Company company = session
.createQuery("from company where company_name=:placeholder")
.setParameter("placeholder", data.getCompanyName())
.uniqueResult();
if(company == null) {
company = new Company(data.getCompanyName());
session.save(company);
}
如果你看一下Hibernate Session对象的文档
Object uniqueResult()
Convenience method to return a single instance that matches the query, or null if the query returns no results.
即它执行您的查询,从数据库中获取记录并将其转换为对象。
您要查找的代码是:
Company company = session.createQuery("from company where company_name=:placeholder")
.setParameter("placeholder", data.getCompanyName())
.uniqueResult()
!=null;
if(company == null) {
company = new Company(data.getCompanyName());
session.save(company);
}