Jak mogę uzyskać nazwę pola powodując ? Jedynym pewnym sposobem sprawdzenia ograniczenia unikalnego jest zatwierdzenie transakcji, więc nawet jeśli sprawdzę to przed wyrzuceniem wyjątku. Tak więc muszę komunikować się z użytkownikiem z polem powodując problem z zapisem.
Szczegółowy komunikat jest bardziej lub mniej techniczny i nie do zaakceptowania przez użytkownika. To także zależy od sterownika bazy danych :( IMO nazwa pola wystarczy, wartość problematyczne mogę dostać się z obiektu. także inne informacje mogę przygotować ... ale nazwę pola.Wyodrębnij nazwę pola powodującą wyjątek ConstraintViolationException
5
A
Odpowiedz
3
nie może pojawi się wyjątek i wiadomość przez swojego przyczyny tak:
try{
t.commit();
}catch (ConstraintViolationException e) {
e.getCause().getMessage();//
}
która dała Ci prowadzić jak to [SQL0407] Null values not allowed in column or variable GROUP00002.
ostatnie słowo to nazwa kolumny, można przełożyć je dopasować swoje pole następnie (przy użyciu HashMap statycznego może).
+1
To jedyne rozwiązanie, które wymyśliłem. Ale dla mnie nie jest to niezależne od wdrożenia. Komunikat jest inny dla wszystkich baz danych, które znam. Nie mogę też uwierzyć, że sprzedawca bazy danych nie zmieni tego w przyszłości :( – Saram
Powiązane problemy
- 1. Jak skonstruować wyjątek ConstraintViolationException?
- 2. znajdź dokładną encję powodującą wyjątek w strukturze encji
- 3. Wyodrębnij nazwę metody z drzewa wyrażeń?
- 4. Wyodrębnij nazwę domeny z adresu URL
- 5. Hibernate ConstraintViolationException w tabeli join
- 6. Nie można uchwycić wyjątku ConstraintViolationException
- 7. Jak mogę uzyskać nazwę pola automatycznie inkrementującego lub nazwę pola klucza głównego z tabeli mysql?
- 8. Zagnieżdżony edytorFor/DisplayNa nadpisać nazwę pola
- 9. MySQL wybierz nazwę kolumny jako pola
- 10. Uzyskaj nazwę pola modelu w szablonie
- 11. Zmień nazwę pola w django admin
- 12. Uzyskaj nazwę pola z klasy bez instancji
- 13. Entity Framework sugerują niepoprawną nazwę pola
- 14. Jak wyśledzić linię powodującą błąd środowiska wykonawczego?
- 15. Wyjątek ConstraintViolation VS DataIntegrityViolationException
- 16. Wyodrębnij ciąg z ReadOnly java.nio.ByteBuffer
- 17. Wyodrębnij strefę czasową ze stringa
- 18. Wyodrębnij emotikony z tekstu
- 19. Wyodrębnij subgraph w neo4j
- 20. Wyodrębnij URL ze stringa
- 21. Wyodrębnij dźwięk z fla
- 22. Wyodrębnij hasło zapisane TortoiseSVN
- 23. Wyodrębnij część repozytorium git?
- 24. jak zastąpić opisowy nazwę pola modelu nadklasy w Django
- 25. Zmień nazwę wyświetlanej nazwy pola w domenie Grails Domain Class
- 26. Jak znaleźć nazwę pola MongoDB na dowolnej głębokości
- 27. Jak uzyskać nazwę pola modelu w niestandardowym szablonie edytora
- 28. Zmień nazwę pola formularza za pomocą kodu JavaScript
- 29. Twitter Bootstrap Wpisz nazwę pola tekstowego mezonów atrybutów z autouzupełnianiem
- 30. plik pola django zwróć nazwę pliku tylko w szablonie
Czy obejrzałeś ten post (https://forum.hibernate.org/viewtopic.php?p=2414824)? – Hippoom
Wygląda na to, że Twój problem jest podobny do http://stackoverflow.com/questions/2995042/how-to-extract-actual-entity-and-property-name-that-is-a-duplicate-ofrom-hibernat?rq = 1. Jeśli chcesz to zrobić. Będzie oparty na sterowniku bazy danych. –
Widziałem wcześniej @Hippoom, ale uznałem to za przestarzały stan wiedzy :) Wygląda jak "rzeźbienie kamienia przez zęby". Również widziałem, co wskazał Haim, ale to nie jest rozwiązanie ... i również nieaktualne. Uważam, że jest to możliwe, jest to bardzo powszechny problem, który myślę. – Saram