package jef.database.meta.def;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.UniqueConstraint;
import jef.database.dialect.DatabaseDialect;
import jef.database.dialect.type.ColumnMapping;
import jef.database.meta.ITableMetadata;
import jef.tools.StringUtils;
/**
* 定义一个唯一约束
* @author Jiyi
*
*/
public class UniqueConstraintDef {
public String name;
public String[] columnNames;
public UniqueConstraintDef(UniqueConstraint unique) {
this.name=unique.name();
this.columnNames=unique.columnNames();
}
public String name() {
return name;
}
public String[] columnNames() {
return columnNames;
}
public List<String> toColumnNames(ITableMetadata meta, DatabaseDialect dialect) {
List<String> columns=new ArrayList<String>(columnNames.length);
for(int i=0;i<columnNames.length;i++){
String name=columnNames[i];
for(String s: StringUtils.split(name, ',')){//为了容错,这个很有可能配错
ColumnMapping column=meta.findField(s);
if(column!=null){
columns.add(column.getColumnName(dialect, true));
}
}
}
return columns;
}
}