2015-10-07 17 views
5

Używam hibernacji 4.1.9. Mój kod jest@ Transmitowanie nie działa w hibernacji

@Transient 
private String ldapIdTemp; 

pakiet jest

import javax.persistence.Transient; 

Jeszcze w zapytaniu hibernacji, to nie działa i oddanie atrybut w zapytaniu.

część fragmentu zapytania (assetasset0_.ldapIdTemp jako ldapIdTemp16_0_,)

Nie jestem pewien, co robię źle.

Odpowiedz

7

można spróbować stworzyć setter i getter dla pola i opisywanie metody GET z @Transient, co następuje:

private String ldapIdTemp; 

@Transient 
public String getLdapIdTemp() { 
    return ldapIdTemp; 
} 

public void setLdapIdTemp(String ldapIdTemp) { 
    this.ldapIdTemp = ldapIdTemp; 
} 
+1

to było dokładnie moje wydanie dzięki –

4

Wiele zależy od tego, jak „zintegrowane” to pole w hierarchii Entity lub klasy. Co więcej, dostęp do usługi może spowodować problem z ustawieniem. Szczegółowe objaśnienie można znaleźć w tym dokumencie: post.

W twoim przypadku, mogę sobie wyobrazić, że albo:

  1. pole mieszany i mienia dostępu w swojej strategii dziedziczenia encji
  2. konfiguracja użycie XML oparte na Hibernate w aplikacji.

W obu przypadkach JPA 2.0/2.1 specification wyraźnie stwierdza w punkcie 2.3.1:

Jest to błąd, jeśli domyślny typ dostępu nie może być ustalona i rodzaj dostępu nie jest wyraźnie określony za pomocą adnotacji lub deskryptor XML. Zachowanie aplikacji, w których umieszczane są adnotacje o polach i właściwościach w hierarchii jednostek bez jawnego określania adnotacji dostępu, jest niezdefiniowane.

Sprawdź, czy uporczywe Entity klasy mają albo dziedzinie LUB personelem na opartych adnotacje.

Powiązane problemy