2013-06-02 19 views
5

Im mitBean Validierung schlägt auf Hibernate Proxy fehl? Erwartetes Verhalten?

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

Ich habe ein fauler ladbare Entity

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

public Library getLibray() { 
    return library; 
} 

und ein defaultValidator

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

Wenn ich versuche, nicht angefügte und angefügte Entitäten zu bestätigen, die mit @NotNull, @Size und so weiter notiert sind. Alles funktioniert gut. Aber wenn ich eine Entity über Lazy Load lade und versuche es zu validieren. Der Validator schlägt jedes Mal fehl. Dies scheint aufgrund der Tatsache, dass ich ein Hibernate Proxy-Objekt bekomme.

Ich kann arround dieses „Problem“ leicht zu erhalten, indem es einfach unproxying. (Aber das ist nicht so günstig in meiner Situation)

Ist dies das erwartete Verhalten? Bekomme ich das gleiche Verhalten in OpenJPA, EclipseLink ....?

Einen schönen Sonntag Jungs;) Ich hoffe, ich habe die Frage klar gemacht?

Antwort

5

Das Problem kann durch Annotieren von Methoden anstelle von Feldern gelöst werden.

Dies wird weiter in HVAL-13 Ausgabe und auch in HV-535 diskutiert. Wenn das Ersetzen von Anmerkungen nicht möglich ist, wird die Lösung im Fehlerbericht stattdessen mit HibernateProxyValidator vorgeschlagen.

+0

Thx Beide Links sind sehr hilfreich. Ich kann deine Antwort aber nicht verbessern :(Aber das ist die "Lösung" – Marvin

+0

Thx Mann deine Hilfe.;) Ich würde gerne mehr in der Gemeinschaft teilnehmen;) – Marvin

+0

@Marvin Wie hast du dein Problem behoben? Arbeitet für mich nicht einmal die Methoden zu kommentieren, was ich ursprünglich gemacht habe. BTW, meins ist eine 'OneToMany'-Beziehung, wenn es darauf ankommt. – Quincy