2016-05-23 1 views
3

Vor ein paar Minuten erhalten einen Fehler "Duplikate Alias" und ich begann zu denken "Können wir prüfen, Alias ​​wurde bereits erstellt? Alias ​​war bereits vorhanden."Können wir prüfen, ob der Alias ​​für den Ruhezustand bereits existiert?

Kennen Sie das? Können wir das überprüfen?

zum Beispiel:

Criteria criteria = getSeession().createCriteria(Example.class,"example"); 
criteria.createAlias("example.test","test"); 

Nun ist diese ich will, werde ich prüfen, ob dieser „Test“ alias bereits erstellt ist, werde ich nicht schaffen nicht, dass ich schaffen.

Ist das möglich? Wenn ist das möglich wie? Wenn nicht möglich, können Sie eine andere Lösung anbieten?

Antwort

1

Wir haben ein ähnliches Problem mit den komplexen Suchkriterien festgestellt. Eine mögliche Problemumgehung besteht darin, eine zusätzliche Infrastruktur zum Erstellen von Kriterien zu verwenden, um Aliasduplikate zu ignorieren. Für ein Beispiel, das solche Klassen verwendet: Aliases, Alias.

Criteria criteria = getSeession().createCriteria(Example.class, "example"); 

    Aliases aliases = Aliases.create() 
     .add("example.test", "test", JoinType.INNER); 
    criteria.add(Restrictions.eq("test", "test_value")); 
    aliases.addToCriteria(criteria); 

    List<Example> examples = criteria.list(); 

Aliases Klasse nutzen zu können, diese Bibliothek einfach herunterladen kann (es muss nicht zusätzliche Gläser): fluent-hibernate.

+0

in Ordnung, zuerst danke für Ihr Interesse. Zweitens haben Sie ein Beispiel, wie Sie diese Struktur verwenden können? – luffy

+0

@luffy Ich aktualisiere. –

Verwandte Themen