下面列出了怎么用javax.persistence.metamodel.SetAttribute的API类实例代码及写法,或者点击链接到github查看源代码。
@SuppressWarnings("unchecked")
protected SetJoin<UserEntity, ExtensionFieldValueEntity> createOrGetJoin(String alias, Root<UserEntity> root,
SetAttribute<UserEntity, ExtensionFieldValueEntity> attribute) {
for (Join<UserEntity, ?> currentJoin : root.getJoins()) {
if (currentJoin.getAlias() == null) {
// if alias is null, it is not an alias for an extension join, so we ignore it
continue;
}
if (currentJoin.getAlias().equals(alias)) {
return (SetJoin<UserEntity, ExtensionFieldValueEntity>) currentJoin;
}
}
final SetJoin<UserEntity, ExtensionFieldValueEntity> join = root.join(attribute, JoinType.LEFT);
join.alias(alias);
return join;
}
@Override
@SuppressWarnings({ "unchecked" })
public SetAttribute<? super X, ?> getSet(String name) {
PluralAttribute<? super X, ?, ?> attribute = getPluralAttribute( name );
if ( attribute == null && getSupertype() != null ) {
attribute = getSupertype().getPluralAttribute( name );
}
basicSetCheck( attribute, name );
return (SetAttribute<? super X, ?>) attribute;
}
@Override
@SuppressWarnings( "unchecked")
public SetAttribute<X, ?> getDeclaredSet(String name) {
final PluralAttribute<X,?,?> attribute = declaredPluralAttributes.get( name );
basicSetCheck( attribute, name );
return ( SetAttribute<X, ?> ) attribute;
}
@Override
@SuppressWarnings({ "unchecked" })
public <E> SetAttribute<? super X, E> getSet(String name, Class<E> elementType) {
PluralAttribute<? super X, ?, ?> attribute = declaredPluralAttributes.get( name );
if ( attribute == null && getSupertype() != null ) {
attribute = getSupertype().getPluralAttribute( name );
}
checkSetElementType( attribute, name, elementType );
return ( SetAttribute<? super X, E> ) attribute;
}
@Override
@SuppressWarnings("unchecked")
public <E> SetAttribute<X, E> getDeclaredSet(String name, Class<E> elementType) {
final PluralAttribute<X,?,?> attribute = declaredPluralAttributes.get( name );
checkSetElementType( attribute, name, elementType );
return ( SetAttribute<X, E> ) attribute;
}
private <Y> SetJoinImplementor<X, Y> constructJoin(SetAttribute<? super X, Y> set, JoinType jt) {
if ( jt.equals( JoinType.RIGHT ) ) {
throw new UnsupportedOperationException( "RIGHT JOIN not supported" );
}
// TODO : runtime check that the attribute in fact belongs to this From's model/bindable
final Class<Y> attributeType = set.getBindableJavaType();
return new SetAttributeJoin<X, Y>( criteriaBuilder(), attributeType, this, set, jt );
}
@Override
@SuppressWarnings({"unchecked"})
public <X, Y> Join<X, Y> join(String attributeName, JoinType jt) {
if ( !canBeJoinSource() ) {
throw illegalJoin();
}
if ( jt.equals( JoinType.RIGHT ) ) {
throw new UnsupportedOperationException( "RIGHT JOIN not supported" );
}
final Attribute<X, ?> attribute = (Attribute<X, ?>) locateAttribute( attributeName );
if ( attribute.isCollection() ) {
final PluralAttribute pluralAttribute = (PluralAttribute) attribute;
if ( PluralAttribute.CollectionType.COLLECTION.equals( pluralAttribute.getCollectionType() ) ) {
return (Join<X, Y>) join( (CollectionAttribute) attribute, jt );
}
else if ( PluralAttribute.CollectionType.LIST.equals( pluralAttribute.getCollectionType() ) ) {
return (Join<X, Y>) join( (ListAttribute) attribute, jt );
}
else if ( PluralAttribute.CollectionType.SET.equals( pluralAttribute.getCollectionType() ) ) {
return (Join<X, Y>) join( (SetAttribute) attribute, jt );
}
else {
return (Join<X, Y>) join( (MapAttribute) attribute, jt );
}
}
else {
return (Join<X, Y>) join( (SingularAttribute) attribute, jt );
}
}
@Override
@SuppressWarnings({"unchecked"})
public <X, Y> SetJoin<X, Y> joinSet(String attributeName, JoinType jt) {
final Attribute<X, ?> attribute = (Attribute<X, ?>) locateAttribute( attributeName );
if ( !attribute.isCollection() ) {
throw new IllegalArgumentException( "Requested attribute was not a set" );
}
final PluralAttribute pluralAttribute = (PluralAttribute) attribute;
if ( !PluralAttribute.CollectionType.SET.equals( pluralAttribute.getCollectionType() ) ) {
throw new IllegalArgumentException( "Requested attribute was not a set" );
}
return (SetJoin<X, Y>) join( (SetAttribute) attribute, jt );
}
public SetAttributeJoin(
CriteriaBuilderImpl criteriaBuilder,
Class<E> javaType,
PathSource<O> pathSource,
SetAttribute<? super O, E> joinAttribute,
JoinType joinType) {
super( criteriaBuilder, javaType, pathSource, joinAttribute, joinType );
}
@SuppressWarnings("unchecked")
public TreatedSetAttributeJoin(SetAttributeJoin<O, ? super T> original, Class<T> treatAsType) {
super(
original.criteriaBuilder(),
treatAsType,
original.getPathSource(),
(SetAttribute<? super O, T>) original.getAttribute(),
original.getJoinType()
);
this.original = original;
this.treatAsType = treatAsType;
}
private void basicSetCheck(PluralAttribute<? super X, ?, ?> attribute, String name) {
checkNotNull( "SetAttribute", attribute, name );
if ( ! SetAttribute.class.isAssignableFrom( attribute.getClass() ) ) {
throw new IllegalArgumentException( name + " is not a SetAttribute: " + attribute.getClass() );
}
}
@Override
public <Y> SetJoin<X, Y> join(SetAttribute<? super X, Y> set) {
return join( set, DEFAULT_JOIN_TYPE );
}
@Override
public SetAttribute<? super O, E> getAttribute() {
return (SetAttribute<? super O, E>) super.getAttribute();
}
@Override
public SetAttribute<? super O, E> getModel() {
return getAttribute();
}
@Override
public SetAttribute<X, ?> getDeclaredSet(final String arg0) {
return null;
}
@Override
public <E> SetAttribute<X, E> getDeclaredSet(final String arg0, final Class<E> arg1) {
return null;
}
@Override
public SetAttribute<? super X, ?> getSet(final String arg0) {
return null;
}
@Override
public <E> SetAttribute<? super X, E> getSet(final String arg0, final Class<E> arg1) {
return null;
}
@Override
public SetAttribute<X, ?> getDeclaredSet(final String arg0) {
return null;
}
@Override
public <E> SetAttribute<X, E> getDeclaredSet(final String arg0, final Class<E> arg1) {
return null;
}
@Override
public SetAttribute<? super X, ?> getSet(final String arg0) {
return null;
}
@Override
public <E> SetAttribute<? super X, E> getSet(final String arg0, final Class<E> arg1) {
return null;
}
@Override
public SetAttribute<X, ?> getDeclaredSet(final String arg0) {
return null;
}
@Override
public <E> SetAttribute<X, E> getDeclaredSet(final String arg0, final Class<E> arg1) {
return null;
}
@Override
public SetAttribute<? super X, ?> getSet(final String arg0) {
return null;
}
@Override
public <E> SetAttribute<? super X, E> getSet(final String arg0, final Class<E> arg1) {
return null;
}
@Override
public SetAttribute<X, ?> getDeclaredSet(final String arg0) {
return null;
}
@Override
public <E> SetAttribute<X, E> getDeclaredSet(final String arg0, final Class<E> arg1) {
return null;
}
@Override
public SetAttribute<? super X, ?> getSet(final String arg0) {
return null;
}
@Override
public <E> SetAttribute<? super X, E> getSet(final String arg0, final Class<E> arg1) {
return null;
}