JPA ConstraintViolation... AJUDAAA!

Olá pessoal. estou com um problema aqui

Tenho uma entidade que está anotada com unique = true…portanto esse campo não pode ser duplicado.

Ao inserir um objeto com um nome existente igualzinho ele dá erro…só que ao inserir um nome igual só que com espaços diferente ele não identifica como sendo duplicado e deixa gravar no banco…

Outro problema é que eu não consigo pegar a excessão ConstrintViolation, pq???Alguém tem alguma solução???

Abraços!

Obrigado!!

Encontrei algo parecido !!!
Ehhhe
up nos foruns ???

Se tá com espaço em branco não é igual… dá um trim antes de salvar.

Já encontrei tb mais ninguém deu uma solução legal…

Só dizem que esse exception não dá pra pegar com try catch …

Fiz uma solução bizarra aqui…carrego uma lista com objetos do banco, do um replaceAll e tiro os espaços, tiro os espação do objeto a ser inserido e comparo com equalsIgnoreCase(), mais é muito tosco…queria uma solução melhor…

Abraços!

Você poderia, antes, verificar se o nome já existe e informar.

[quote=fiaux]Se tá com espaço em branco não é igual… dá um trim antes de salvar.[/quote].

Mais vc concorda que Lucas. é a mesma coisa que Lucas"espaço".

Afinal ao exibir o usuário não vê os espaços depois…

[quote=l.cestarolli][quote=fiaux]Se tá com espaço em branco não é igual… dá um trim antes de salvar.[/quote].

Mais vc concorda que Lucas. é a mesma coisa que Lucas"espaço".

Afinal ao exibir o usuário não vê os espaços depois…[/quote]

Cara, não concordo, não sou usário… por isso que você deve remover os espaços. Use trim().

Mas acredito que o problema seja este, para nos é amesma coisa, mas a nivel de abstração são coisas diferentes !!!
Mas tenta arrumar direitinho o metodo toString(), acho que assim resolve !!!

[quote=fiaux][quote=l.cestarolli][quote=fiaux]Se tá com espaço em branco não é igual… dá um trim antes de salvar.[/quote].

Mais vc concorda que Lucas. é a mesma coisa que Lucas"espaço".

Afinal ao exibir o usuário não vê os espaços depois…[/quote]

Cara, não concordo, não sou usário… por isso que você deve remover os espaços. Use trim().[/quote]

Então mesmo usando o trim não resolve o problema…pq se tiver espaços no meio tb não dá certo…

e outra coisa como eu pego a exception ConstraintViolation…???

[quote]Então mesmo usando o trim não resolve o problema…pq se tiver espaços no meio tb não dá certo…

e outra coisa como eu pego a exception ConstraintViolation…??? [/quote]
Sim, no meio não dá. Mas você pode criar algo para remover os espaços em branco. Para pegar a exception use um try catch.

[quote=fiaux][quote]Então mesmo usando o trim não resolve o problema…pq se tiver espaços no meio tb não dá certo…

e outra coisa como eu pego a exception ConstraintViolation…??? [/quote]
Sim, no meio não dá. Mas você pode criar algo para remover os espaços em branco. Para pegar a exception use um try catch.[/quote]

O problema é que o try catch não pega essa…

[quote=fiaux][quote]Então mesmo usando o trim não resolve o problema…pq se tiver espaços no meio tb não dá certo…

e outra coisa como eu pego a exception ConstraintViolation…??? [/quote]
Sim, no meio não dá. Mas você pode criar algo para remover os espaços em branco. Para pegar a exception use um try catch.[/quote]

Então eu criei algo…ta ai em cima…

o problema é que ta bizarro, queria algo melhor…

Você poderia remover os espaços da maneira que criou, pegar esse nome sem espaços e buscar no banco para ver se já existe.

Pois é exatamente isso que estou fazendo…só que imagina 50000 registros…

Bizarro neh?

Pois é exatamente isso que estou fazendo…só que imagina 50000 registros…

Bizarro neh?
[/quote]
Bizarro mesmo… você busca todos os registros? Bizarro mesmo… deixa o banco fazer isso cara, cria uma query.

Pois é exatamente isso que estou fazendo…só que imagina 50000 registros…

Bizarro neh?
[/quote]
Bizarro mesmo… você busca todos os registros? Bizarro mesmo… deixa o banco fazer isso cara, cria uma query.[/quote]

Uma query pra verificar se existe???

Mais e os espaços?

Eu havia respondido antes: