我正在尝试使java类在表中注册属性,并且没有重复的属性。
我不知道该使用哪种方法。
public class TriggerAttributes extends TableTrigger {
public void trigger() {
if (!isEmptyCodeAtlas)
this.attributesDouble(codeAtlas, Paths._Root_RelationPostale_Attributs._CodeAtlas, "Code Atlas déja utilisé, pas de doublon possible");
if (!isEmptyCodeEden)
this.attributesDouble(codeEden, Paths._Root_RelationPostale_Attributs._CodeEden, "Code Eden déja utilisé, pas de doublon possible");
if (!isEmptyLibelle)
this.attributesDouble(libelleCourt, Paths._Root_RelationPostale_Attributs._LibelleCourt, "Libellé déja utilisé, pas de doublon possible");
if (!isEmptyCodeAtlas || !isEmptyCodeEden) {
Vector<String> list = new Vector<String>();
if (isEmptyLibelle)
list.add("Libellé court");
if (longeur == null)
list.add("Longeur");
if (largeur == null)
list.add("Largeur");
if (hauteur == null)
list.add("Hauteur");
}
if (!isEmptyCodeAtlas && niveau == null)
this.Exception = "Le champ Niveau est obligatoire si un code Atlas est utilisé";
}
private void attributesDouble(Object value, Path xPathValue, String error) {
String Exception = "test";
Request request = this.Attributs.createRequest();
request.setSpecificFilter(new TriggerAttributes.FiltreAttributs(value, xPathValue));
RequestResult result = request.execute();
if (result.getSize() > 1) {
this.Exception = this.Exception + error;
}
}
}
请分享您的想法。
答案 0 :(得分:0)
我不确定是否收到问题,但是如果您尝试避免列表中出现重复项,那么最好使用Set / Hashset而不是列表,因为这样做不会 允许重复。 https://docs.oracle.com/javase/7/docs/api/java/util/HashSet.html
如果有重复,就不会抛出错误,只是不会添加到整个事情中。