Java 类javax.persistence.criteria.SetJoin 实例源码
项目:oma-riista-web
文件:HarvestQuotaRepository.java
default HarvestQuota findByHarvestSeasonAndRhy(final long harvestSeasonId, final long rhyId) {
return findOne((root, query, cb) -> {
final Join<HarvestQuota, HarvestSeason> seasonToJoin = root.join(HarvestQuota_.harvestSeason, JoinType.LEFT);
final Predicate harvestSeasonPredicate = cb.equal(seasonToJoin.get(HarvestSeason_.id), harvestSeasonId);
final Join<HarvestQuota, HarvestArea> areaToJoin = root.join(HarvestQuota_.harvestArea, JoinType.LEFT);
final SetJoin<HarvestArea, Riistanhoitoyhdistys> rhysToJoin = areaToJoin.join(HarvestArea_.rhys, JoinType.LEFT);
final Predicate rhyPredicate = cb.equal(rhysToJoin.get(Organisation_.id), rhyId);
return cb.and(harvestSeasonPredicate, rhyPredicate);
});
}
项目:HibernateTips
文件:TestCriteriaQuery.java
@Test
public void getBooks() {
log.info("... getBooks ...");
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Book> cq = cb.createQuery(Book.class);
Root<Book> root = cq.from(Book.class);
SetJoin<Book, Author> authors = root.join(Book_.authors);
ParameterExpression<String> paramFirstName = cb.parameter(String.class);
ParameterExpression<String> paramLastName = cb.parameter(String.class);
cq.where(
cb.and(
cb.equal(authors.get(Author_.firstName), paramFirstName),
cb.equal(authors.get(Author_.lastName), paramLastName)));
TypedQuery<Book> query = em.createQuery(cq);
query.setParameter(paramFirstName, "Thorben");
query.setParameter(paramLastName, "Janssen");
List<Book> books = query.getResultList();
Assert.assertEquals(1, books.size());
for (Book b : books) {
log.info(b);
}
em.getTransaction().commit();
em.close();
}
项目:hawkbit
文件:DistributionSetSpecification.java
/**
* {@link Specification} for retrieving {@link DistributionSet}s by "has at
* least one of the given tag names".
*
* @param tagNames
* to be filtered on
* @param selectDSWithNoTag
* flag to select distribution sets with no tag
* @return the {@link DistributionSet} {@link Specification}
*/
public static Specification<JpaDistributionSet> hasTags(final Collection<String> tagNames,
final Boolean selectDSWithNoTag) {
return (targetRoot, query, cb) -> {
final SetJoin<JpaDistributionSet, JpaDistributionSetTag> tags = targetRoot.join(JpaDistributionSet_.tags,
JoinType.LEFT);
final Predicate predicate = getPredicate(tags, tagNames, selectDSWithNoTag, cb);
query.distinct(true);
return predicate;
};
}
项目:hawkbit
文件:DistributionSetSpecification.java
private static Predicate getPredicate(final SetJoin<JpaDistributionSet, JpaDistributionSetTag> tags,
final Collection<String> tagNames, final Boolean selectDSWithNoTag, final CriteriaBuilder cb) {
tags.get(JpaDistributionSetTag_.name);
final Path<String> exp = tags.get(JpaDistributionSetTag_.name);
if (selectDSWithNoTag != null && selectDSWithNoTag) {
if (!CollectionUtils.isEmpty(tagNames)) {
return cb.or(exp.isNull(), exp.in(tagNames));
} else {
return exp.isNull();
}
} else {
return exp.in(tagNames);
}
}
项目:hawkbit
文件:DistributionSetSpecification.java
/**
* {@link Specification} for retrieving {@link DistributionSet}s by tag.
*
* @param tagId
* the ID of the distribution set which must be assigned
* @return the {@link DistributionSet} {@link Specification}
*/
public static Specification<JpaDistributionSet> hasTag(final Long tagId) {
return (targetRoot, query, cb) -> {
final SetJoin<JpaDistributionSet, JpaDistributionSetTag> tags = targetRoot.join(JpaDistributionSet_.tags,
JoinType.LEFT);
return cb.equal(tags.get(JpaDistributionSetTag_.id), tagId);
};
}
项目:hawkbit
文件:TargetSpecifications.java
private static Predicate getPredicate(final Root<JpaTarget> targetRoot, final CriteriaBuilder cb,
final Boolean selectTargetWithNoTag, final String[] tagNames) {
final SetJoin<JpaTarget, JpaTargetTag> tags = targetRoot.join(JpaTarget_.tags, JoinType.LEFT);
final Path<String> exp = tags.get(JpaTargetTag_.name);
if (selectTargetWithNoTag) {
if (tagNames != null) {
return cb.or(exp.isNull(), exp.in(tagNames));
} else {
return exp.isNull();
}
} else {
return exp.in(tagNames);
}
}
项目:hawkbit
文件:TargetSpecifications.java
/**
* {@link Specification} for retrieving {@link Target}s by tag.
*
* @param tagId
* the ID of the distribution set which must be assigned
* @return the {@link Target} {@link Specification}
*/
public static Specification<JpaTarget> hasTag(final Long tagId) {
return (targetRoot, query, cb) -> {
final SetJoin<JpaTarget, JpaTargetTag> tags = targetRoot.join(JpaTarget_.tags, JoinType.LEFT);
return cb.equal(tags.get(JpaTargetTag_.id), tagId);
};
}
项目:tap17-muggl-javaee
文件:MugglFrom.java
@Override
public <Y> SetJoin<X, Y> join(SetAttribute<? super X, Y> set) {
// TODO Auto-generated method stub
return null;
}
项目:tap17-muggl-javaee
文件:MugglFrom.java
@Override
public <Y> SetJoin<X, Y> join(SetAttribute<? super X, Y> set, JoinType jt) {
// TODO Auto-generated method stub
return null;
}
项目:tap17-muggl-javaee
文件:MugglFrom.java
@Override
public <X, Y> SetJoin<X, Y> joinSet(String attributeName) {
// TODO Auto-generated method stub
return null;
}
项目:tap17-muggl-javaee
文件:MugglFrom.java
@Override
public <X, Y> SetJoin<X, Y> joinSet(String attributeName, JoinType jt) {
// TODO Auto-generated method stub
return null;
}
项目:tap17-muggl-javaee
文件:MugglCriteriaBuilder.java
@Override
public <X, T, E extends T> SetJoin<X, E> treat(SetJoin<X, T> join,
Class<E> type) {
// TODO Auto-generated method stub
return null;
}
项目:hibernate-semantic-query
文件:CriteriaBuilderImpl.java
@Override
@SuppressWarnings("unchecked")
public <X, T, E extends T> SetJoin<X, E> treat(SetJoin<X, T> join, Class<E> type) {
// return ( (SetJoinImplementor) join ).treatAs( type );
throw new NotYetImplementedException( );
}
项目:hexa.tools
文件:RootImpl.java
@Override
public <Y> SetJoin<T, Y> join( SetAttribute<? super T, Y> arg0 )
{
// TODO Auto-generated method stub
return null;
}
项目:hexa.tools
文件:RootImpl.java
@Override
public <Y> SetJoin<T, Y> join( SetAttribute<? super T, Y> arg0, JoinType arg1 )
{
// TODO Auto-generated method stub
return null;
}
项目:hexa.tools
文件:RootImpl.java
@Override
public <X, Y> SetJoin<X, Y> joinSet( String arg0 )
{
// TODO Auto-generated method stub
return null;
}
项目:hexa.tools
文件:RootImpl.java
@Override
public <X, Y> SetJoin<X, Y> joinSet( String arg0, JoinType arg1 )
{
// TODO Auto-generated method stub
return null;
}
项目:raidenjpa
文件:RaidenRoot.java
@Override
public <Y> SetJoin<X, Y> join(SetAttribute<? super X, Y> set) {
// TODO Auto-generated method stub
return null;
}
项目:raidenjpa
文件:RaidenRoot.java
@Override
public <Y> SetJoin<X, Y> join(SetAttribute<? super X, Y> set, JoinType jt) {
// TODO Auto-generated method stub
return null;
}
项目:raidenjpa
文件:RaidenRoot.java
@Override
public <X, Y> SetJoin<X, Y> joinSet(String attributeName) {
// TODO Auto-generated method stub
return null;
}
项目:raidenjpa
文件:RaidenRoot.java
@Override
public <X, Y> SetJoin<X, Y> joinSet(String attributeName, JoinType jt) {
// TODO Auto-generated method stub
return null;
}
项目:hawkbit
文件:ActionSpecifications.java
/**
* Specification which joins all necessary tables to retrieve the dependency
* between a target and a local file assignment through the assigned action
* of the target. All actions are included, not only active actions.
*
* @param controllerId
* the target to verify if the given artifact is currently
* assigned or had been assigned
* @param sha1Hash
* of the local artifact to check wherever the target had ever
* been assigned
* @return a specification to use with spring JPA
*/
public static Specification<JpaAction> hasTargetAssignedArtifact(final String controllerId, final String sha1Hash) {
return (actionRoot, query, criteriaBuilder) -> {
final Join<JpaAction, JpaDistributionSet> dsJoin = actionRoot.join(JpaAction_.distributionSet);
final SetJoin<JpaDistributionSet, JpaSoftwareModule> modulesJoin = dsJoin.join(JpaDistributionSet_.modules);
final ListJoin<JpaSoftwareModule, JpaArtifact> artifactsJoin = modulesJoin
.join(JpaSoftwareModule_.artifacts);
return criteriaBuilder.and(criteriaBuilder.equal(artifactsJoin.get(JpaArtifact_.sha1Hash), sha1Hash),
criteriaBuilder.equal(actionRoot.get(JpaAction_.target).get(JpaTarget_.controllerId),
controllerId));
};
}
项目:hawkbit
文件:ActionSpecifications.java
/**
* Specification which joins all necessary tables to retrieve the dependency
* between a target and a local file assignment through the assigned action
* of the target. All actions are included, not only active actions.
*
* @param targetId
* the target to verify if the given artifact is currently
* assigned or had been assigned
* @param sha1Hash
* of the local artifact to check wherever the target had ever
* been assigned
* @return a specification to use with spring JPA
*/
public static Specification<JpaAction> hasTargetAssignedArtifact(final Long targetId, final String sha1Hash) {
return (actionRoot, query, criteriaBuilder) -> {
final Join<JpaAction, JpaDistributionSet> dsJoin = actionRoot.join(JpaAction_.distributionSet);
final SetJoin<JpaDistributionSet, JpaSoftwareModule> modulesJoin = dsJoin.join(JpaDistributionSet_.modules);
final ListJoin<JpaSoftwareModule, JpaArtifact> artifactsJoin = modulesJoin
.join(JpaSoftwareModule_.artifacts);
return criteriaBuilder.and(criteriaBuilder.equal(artifactsJoin.get(JpaArtifact_.sha1Hash), sha1Hash),
criteriaBuilder.equal(actionRoot.get(JpaAction_.target).get(JpaTarget_.id), targetId));
};
}