[英]QueryDSL build a query with subclass
我在QueryDSL中建立查詢。 我有實體和子類實體具有相同的列。 我想僅使用單個JPAQuery對兩個實體使用相同的查詢。
這是我的實體。
@Entity
public class Region {
@Id
private Integer id;
}
@Entity
public class RegionTemp extends Region {}
查詢者
@Component
public class RegionQueryer {
@PersistenceContext
private EntityManager mysqlEntityManager;
QRegion qRegion = QRegion.region; // ???
public Integer loadLastId() {
return new JPAQueryFactory(mysqlEntityManager)
.select(qRegion.id)
.from(qRegion)
.orderBy(qRegion.id.desc()).fetchFirst();
}
}
我的代碼。 這個樣本。 如果要使用單個查詢。 使用簡單的存儲庫。 輕松查找,刪除,保存。 您搜索JPA教程。
@Override
public List<CompanyInformaion> findCompanyInformationList(String language, Association association) {
QCompanyInformaion qCompanyInformaion = QCompanyInformaion.companyInformaion;
QCompany qCompany = QCompany.company;
EntityManager em = entityManagerFactory.createEntityManager();
JPAQuery jpaQuery = new JPAQuery(em);
List<CompanyInformaion> infos = jpaQuery.from(qCompanyInformaion)
.where(qCompanyInformaion.language.eq(language)
.and(qCompanyInformaion.company.in(new JPASubQuery().from(qCompany)
.where(qCompany.association.eq(association)).list(qCompany))))
.orderBy(qCompanyInformaion.companyName.asc()).list(qCompanyInformaion);
return infos;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.