Java 类javax.persistence.UniqueConstraint 实例源码

项目:lams    文件:JPAOverriddenAnnotationReader.java   
private static void buildUniqueConstraints(AnnotationDescriptor annotation, Element element) {
    List uniqueConstraintElementList = element.elements( "unique-constraint" );
    UniqueConstraint[] uniqueConstraints = new UniqueConstraint[uniqueConstraintElementList.size()];
    int ucIndex = 0;
    Iterator ucIt = uniqueConstraintElementList.listIterator();
    while ( ucIt.hasNext() ) {
        Element subelement = (Element) ucIt.next();
        List<Element> columnNamesElements = subelement.elements( "column-name" );
        String[] columnNames = new String[columnNamesElements.size()];
        int columnNameIndex = 0;
        Iterator it = columnNamesElements.listIterator();
        while ( it.hasNext() ) {
            Element columnNameElt = (Element) it.next();
            columnNames[columnNameIndex++] = columnNameElt.getTextTrim();
        }
        AnnotationDescriptor ucAnn = new AnnotationDescriptor( UniqueConstraint.class );
        copyStringAttribute( ucAnn, subelement, "name", false );
        ucAnn.setValue( "columnNames", columnNames );
        uniqueConstraints[ucIndex++] = AnnotationFactory.create( ucAnn );
    }
    annotation.setValue( "uniqueConstraints", uniqueConstraints );
}
项目:lams    文件:TableBinder.java   
/**
 * Build a list of {@link org.hibernate.cfg.UniqueConstraintHolder} instances given a list of
 * {@link UniqueConstraint} annotations.
 *
 * @param annotations The {@link UniqueConstraint} annotations.
 *
 * @return The built {@link org.hibernate.cfg.UniqueConstraintHolder} instances.
 */
public static List<UniqueConstraintHolder> buildUniqueConstraintHolders(UniqueConstraint[] annotations) {
    List<UniqueConstraintHolder> result;
    if ( annotations == null || annotations.length == 0 ) {
        result = java.util.Collections.emptyList();
    }
    else {
        result = new ArrayList<UniqueConstraintHolder>( CollectionHelper.determineProperSizing( annotations.length ) );
        for ( UniqueConstraint uc : annotations ) {
            result.add(
                    new UniqueConstraintHolder()
                            .setName( uc.name() )
                            .setColumns( uc.columnNames() )
            );
        }
    }
    return result;
}
项目:gcplot    文件:AbstractOrientDbRepository.java   
protected <T> void register(OObjectDatabaseTx db, OSchema schema, Class<T> aClass) {
    if (schema.getClass(aClass.getSimpleName()) == null) {
        db.getEntityManager().registerEntityClasses(aClass, true);
        OClass cls = db.getMetadata().getSchema().getClass(aClass);
        String indexName = aClass.getName() + ".unq";
        Table t = aClass.getAnnotation(Table.class);
        if (t != null) {
            Set<String> fields = new HashSet<>();
            for (UniqueConstraint uc : t.uniqueConstraints()) {
                fields.addAll(Lists.newArrayList(uc.columnNames()));
            }
            if (fields.size() > 0) {
                LOG.info("Registering unique constraint for fields: " + fields);
                for (String field : fields)
                    cls.createIndex(indexName + "." + field, OClass.INDEX_TYPE.UNIQUE_HASH_INDEX, field);
            }
        }
    } else {
        db.getEntityManager().registerEntityClasses(aClass, true);
    }
}
项目:org.fastnate    文件:EntityClass.java   
private void instpectUniqueConstraint(final UniqueConstraint constraint) {
    UniquePropertyQuality currentQuality = UniquePropertyQuality.onlyRequiredPrimitives;
    final List<SingularProperty<E, ?>> uniques = new ArrayList<>();
    final String[] columnNames = constraint.columnNames();
    for (final String columnName : columnNames) {
        for (final Property<E, ?> property : this.properties.values()) {
            if (property instanceof SingularProperty) {
                final SingularProperty<E, ?> singularProperty = (SingularProperty<E, ?>) property;
                if (columnName.equals(singularProperty.getColumn().getName())) {
                    final UniquePropertyQuality quality = UniquePropertyQuality.getMatchingQuality(property);
                    if (quality != null) {
                        if (quality.ordinal() > currentQuality.ordinal()) {
                            currentQuality = quality;
                        }
                        uniques.add(singularProperty);
                    }
                }
            }
        }
    }
    if (uniques.size() == columnNames.length && isBetterUniquePropertyQuality(currentQuality)) {
        this.uniqueProperties = uniques;
        this.uniquePropertiesQuality = currentQuality;
    }
}
项目:lams    文件:TableBinder.java   
/**
 * @deprecated Use {@link #buildUniqueConstraintHolders} instead
 */
@Deprecated
@SuppressWarnings({ "JavaDoc" })
public static List<String[]> buildUniqueConstraints(UniqueConstraint[] constraintsArray) {
    List<String[]> result = new ArrayList<String[]>();
    if ( constraintsArray.length != 0 ) {
        for (UniqueConstraint uc : constraintsArray) {
            result.add( uc.columnNames() );
        }
    }
    return result;
}
项目:UniqueValidator    文件:UniqueValidator.java   
private ArrayList<String[]> _getFieldsFromUniqueConstraint(Object value){
    ArrayList<String[]> result = new ArrayList<>();

    if(value.getClass().isAnnotationPresent(Table.class)){
        Table ta = value.getClass().getAnnotation(Table.class);
        for(UniqueConstraint uc : ta.uniqueConstraints()){
            result.add(uc.columnNames());
        }
    }

    return result;
}
项目:mycore    文件:MCRCategoryImpl.java   
@Override
@ElementCollection(fetch = FetchType.LAZY)
@CollectionTable(name = "MCRCategoryLabels",
    joinColumns = @JoinColumn(name = "category"),
    uniqueConstraints = {
        @UniqueConstraint(columnNames = { "category", "lang" }) })
public Set<MCRLabel> getLabels() {
    return super.getLabels();
}
项目:mycore    文件:MCRHibernateConfigHelper.java   
private static String getUniqueColumns(Class<?> clazz, String name) {
    return Optional.of(clazz)
        .map(c -> c.getAnnotation(Table.class))
        .map(Table::uniqueConstraints)
        .map(Stream::of)
        .flatMap(s -> s
            .filter(uc -> uc.name().equals(name))
            .findAny()
            .map(UniqueConstraint::columnNames))
        .map(Stream::of)
        .map(s -> s.collect(Collectors.joining(", ")))
        .get();
}
项目:rpb    文件:JpaUniqueUtil.java   
private List<String> validateCompositeUniqueConstraints(Identifiable<?> entity) {
    Class<?> entityClass = getClassWithoutInitializingProxy(entity);
    Table table = findAnnotation(entityClass, Table.class);
    if (table == null) {
        return emptyList();
    }
    List<String> errors = newArrayList();
    for (UniqueConstraint uniqueConstraint : table.uniqueConstraints()) {
        if (!checkCompositeUniqueConstraint(entity, entityClass, uniqueConstraint)) {
            errors.add(compositeUniqueConstraintErrorCode(entity, uniqueConstraint));
        }
    }
    return errors;
}
项目:rpb    文件:JpaUniqueUtil.java   
private Map<String, Object> getPropertyConstraints(Object entity, Class<?> entityClass, UniqueConstraint u, String prefix) {
    Map<String, Object> values = newHashMap();
    for (String column : u.columnNames()) {
        Method method = columnNameToMethod(entityClass, column);
        if (method != null) {
            values.put(prefix + methodToProperty(method), invokeMethod(method, entity));
        } else {
            Field field = columnNameToField(entityClass, column);
            if (field != null) {
                values.put(prefix + field.getName(), getValueFromField(field, entity));
            }
        }
    }
    return values;
}
项目:rpb    文件:JpaUniqueUtil.java   
private List<String> validateCompositeUniqueConstraints(Identifiable<?> entity) {
    Class<?> entityClass = getClassWithoutInitializingProxy(entity);
    Table table = findAnnotation(entityClass, Table.class);
    if (table == null) {
        return emptyList();
    }
    List<String> errors = newArrayList();
    for (UniqueConstraint uniqueConstraint : table.uniqueConstraints()) {
        if (!checkCompositeUniqueConstraint(entity, entityClass, uniqueConstraint)) {
            errors.add(compositeUniqueConstraintErrorCode(entity, uniqueConstraint));
        }
    }
    return errors;
}
项目:rpb    文件:JpaUniqueUtil.java   
private Map<String, Object> getPropertyConstraints(Object entity, Class<?> entityClass, UniqueConstraint u, String prefix) {
    Map<String, Object> values = newHashMap();
    for (String column : u.columnNames()) {
        Method method = columnNameToMethod(entityClass, column);
        if (method != null) {
            values.put(prefix + methodToProperty(method), invokeMethod(method, entity));
        } else {
            Field field = columnNameToField(entityClass, column);
            if (field != null) {
                values.put(prefix + field.getName(), getValueFromField(field, entity));
            }
        }
    }
    return values;
}
项目:org.fastnate    文件:EntityClass.java   
private void buildUniqueProperties(final UniqueConstraint[] uniqueConstraints) {
    for (final UniqueConstraint constraint : uniqueConstraints) {
        if (constraint.columnNames().length <= this.context.getMaxUniqueProperties()) {
            instpectUniqueConstraint(constraint);
        }
    }
}
项目:saos    文件:Judgment.java   
@ElementCollection
@CollectionTable(name="judgment_court_reporter", uniqueConstraints={@UniqueConstraint(name="judgment_court_reporter_unique", columnNames={"fk_judgment", "court_reporter"})})
@Column(name="court_reporter")
@OrderBy("court_reporter")
private List<String> getCourtReporters_() {
    return courtReporters;
}
项目:saos    文件:Judgment.java   
@ElementCollection
@CollectionTable(name="judgment_legal_bases", uniqueConstraints={@UniqueConstraint(name="judgment_legal_base_unique", columnNames={"fk_judgment", "legal_base"})})
@Column(name="legal_base")
@OrderBy("legal_base")
private List<String> getLegalBases_() {
    return legalBases;
}
项目:saos    文件:Judgment.java   
@ElementCollection
@CollectionTable(name="judgment_lower_court_judgments", uniqueConstraints={@UniqueConstraint(name="judgment_lower_court_judgment_unique", columnNames={"fk_judgment", "lower_court_judgment"})})
@Column(name="lower_court_judgment")
@OrderBy("lower_court_judgment")
private List<String> getLowerCourtJudgments_() {
    return lowerCourtJudgments;
}
项目:saos    文件:ConstitutionalTribunalJudgmentDissentingOpinion.java   
@ElementCollection
@CollectionTable(name="ct_judgment_opinion_author",
                joinColumns = {@JoinColumn(name = "fk_ct_judgment_opinion", nullable = false)},
                uniqueConstraints={@UniqueConstraint(name="ct_judgment_opinion_author_unique", columnNames={"fk_ct_judgment_opinion", "author"})})
@Column(name="author", nullable=false)
private List<String> getAuthors_() {
    return authors;
}
项目:stdlib    文件:RoleEntity.java   
@OrderBy("id DESC")
@ManyToMany(cascade = CascadeType.ALL)
@JoinTable(name = "user_has_role", //
        joinColumns = {@JoinColumn(name = "role_id", referencedColumnName = "id", nullable = false, updatable = false)}, inverseJoinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id", nullable = false, updatable = false)}, uniqueConstraints = {@UniqueConstraint(columnNames = {"user_id",
                                                                                                                                                                                                                                                                                                       "role_id"})})
public List<UserEntity> getMembers()
{
    return members;
}
项目:lams    文件:TableBinder.java   
public void setUniqueConstraints(UniqueConstraint[] uniqueConstraints) {
    this.uniqueConstraints = TableBinder.buildUniqueConstraintHolders( uniqueConstraints );
}
项目:rpb    文件:JpaUniqueUtil.java   
private String compositeUniqueConstraintErrorCode(Identifiable<?> entity, UniqueConstraint uniqueConstraint) {
    return getEntityName(entity).toLowerCase() + "_"
            + (uniqueConstraint.name() == null ? "composite_unique_constraint_error" : uniqueConstraint.name().toLowerCase());
}
项目:rpb    文件:JpaUniqueUtil.java   
private boolean checkCompositeUniqueConstraint(Identifiable<?> entity, Class<?> entityClass, UniqueConstraint u) {
    Map<String, Object> values = newHashMap();
    values.putAll(getPropertyConstraints(entity, entityClass, u, ""));
    return !existsInDatabaseOnAllObjects(entity, values);
}
项目:rpb    文件:JpaUniqueUtil.java   
private String compositeUniqueConstraintErrorCode(Identifiable<?> entity, UniqueConstraint uniqueConstraint) {
    return getEntityName(entity).toLowerCase() + "_"
            + (uniqueConstraint.name() == null ? "composite_unique_constraint_error" : uniqueConstraint.name().toLowerCase());
}
项目:rpb    文件:JpaUniqueUtil.java   
private boolean checkCompositeUniqueConstraint(Identifiable<?> entity, Class<?> entityClass, UniqueConstraint u) {
    Map<String, Object> values = newHashMap();
    values.putAll(getPropertyConstraints(entity, entityClass, u, ""));
    return !existsInDatabaseOnAllObjects(entity, values);
}
项目:ef-orm    文件:UniqueConstraintDef.java   
public UniqueConstraintDef(UniqueConstraint unique) {
    this.name=unique.name();
    this.columnNames=unique.columnNames();
}
项目:exportlibrary    文件:ValidationReport.java   
/**
 * Gets the value of the validation property.
 *
 * <p>
 * This accessor method returns a reference to the live list, not a
 * snapshot. Therefore any modification you make to the returned list will
 * be present inside the JAXB object. This is why there is not a
 * <CODE>set</CODE> method for the validation property.
 *
 * <p>
 * For example, to add a new item, do as follows:
 * <pre>
 *    getValidation().add(newItem);
 * </pre>
 *
 *
 * <p>
 * Objects of the following type(s) are allowed in the list
 * {@link Validation }
 *
 *
 */
@ManyToMany(targetEntity = Validation.class, cascade = {
    CascadeType.ALL
})
@JoinTable(name = "VALIDATION_REPORT_VALIDATION", joinColumns = {
    @JoinColumn(name = "validationreport", referencedColumnName = "HJID")
}, inverseJoinColumns = {
    @JoinColumn(name = "validation", referencedColumnName = "HJID")
}, uniqueConstraints =
        @UniqueConstraint(columnNames = {"validationreport", "validation"}))
@OrderColumn(name = "VALIDATION_HJORDER")
public Set<Validation> getValidation() {
    if (validation == null) {
        validation = new HashSet<>();
    }
    return this.validation;
}