项目: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();
}
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;
}
项目: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
项目:saos
文件:Judgment.java
@ElementCollection
@CollectionTable(name="judgment_lower_court_judgments",uniqueConstraints={@UniqueConstraint(name="judgment_lower_court_judgment_unique","lower_court_judgment"})})
@Column(name="lower_court_judgment")
@OrderBy("lower_court_judgment")
private List<String> getLowerCourtJudgments_() {
return lowerCourtJudgments;
}
@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",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,UniqueConstraint u) {
Map<String,Object> values = newHashMap();
values.putAll(getPropertyConstraints(entity,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",uniqueConstraints =
@UniqueConstraint(columnNames = {"validationreport","validation"}))
@OrderColumn(name = "VALIDATION_HJORDER")
public Set<Validation> getValidation() {
if (validation == null) {
validation = new HashSet<>();
}
return this.validation;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。