2013-06-02 12 views
5

Im usandoErrore di convalida del bean sul proxy di ibernazione? Comportamento atteso?

  • hibernate-core-4.0.1.Final
  • hibernate-validator-4.2.0.Final

Ho un pigro caricabile Entity

@NotNull 
@OneToOne(fetch = FetchType.LAZY,optional = false,cascade = CascadeType.PERSIST) 
@JoinColumn(name="library_id") 
private Library library; 

public Library getLibray() { 
    return library; 
} 

e un defaultValidator

private final ValidatorFactory factory = Validation 
      .buildDefaultValidatorFactory(); 
private final Validator val = factory.getValidator(); 

Quando si tenta di convalidare Entità distaccate e collegate annotate con @NotNull, @Size e così via. Tutto funziona bene. Ma quando carico un'entità tramite Lazy Load e provo a convalidarlo. Il validatore non riesce ogni volta. Ciò sembra dovuto al fatto che sto ottenendo un oggetto proxy Hibernate.

posso ottenere arround questo "problema" facilmente da solo unproxying esso. (Ma non è così favorevole nella mia situazione)

È questo il comportamento previsto? Ho lo stesso comportamento in OpenJPA, EclipseLink ....?

Buona domenica ragazzi;) Spero di aver chiarito la questione?

risposta

5

Il problema può essere risolto annotando i metodi anziché i campi.

Questo è ulteriormente discusso nel numero HVAL-13 e anche in HV-535. Se la sostituzione delle annotazioni non è fattibile, la soluzione suggerita nella segnalazione di bug utilizza invece HibernateProxyValidator.

+0

THx Entrambi i collegamenti sono molto utili. Non posso comunque invitare la tua risposta :(Ma questa è la "Soluzione" – Marvin

+0

Thx man tuo utile.;) Mi piacerebbe partecipare di più nella comunità;) – Marvin

+0

@ Marvin Come hai risolto il tuo problema? Non ha funzionato per me nemmeno annotando i metodi, che è quello che ho fatto in origine. A proposito, la mia è una relazione 'OneToMany' se importa. – Quincy

Problemi correlati