Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie behebe ich die Ursache der Hibernate-Ausnahme IllegalArgumentException, die beim Aufrufen von Setter aufgetreten ist?

Es stellt sich heraus, dass diese Ausnahme auf einen Fehler in Hibernate zurückzuführen ist. Einer meiner Teamkollegen hat einen verwandten Fehlerbericht gefunden:Das erneute Zusammensetzen einer Entität aus geclustertem JBoss-Cache schlägt möglicherweise mit "nicht übereinstimmenden Argumenttypen" fehl , das bei Verwendung von Hibernate und JBoss Cache auftritt.

Laut dem Bericht wird die Hibernate-Eigenschaft hibernate.cache.use_structured_entries gesetzt auf wahr vermeidet die Ausnahme. Laut der Hibernate-Dokumentation „zwingt diese Eigenschaft Hibernate dazu, Daten im Second-Level-Cache in einem menschenfreundlicheren Format zu speichern“. Anscheinend sorgen strukturierte Cache-Einträge auch dafür, dass Hibernate Eigenschaften eines Objekts im Second-Level-Cache korrekt auf die entsprechende Eigenschaft in einer Entität abbildet.

Javalobby hat einen interessanten Artikel, der erklärt, wie Hibernate den Second-Level-Cache verwendet.

Zeigen auch Versionen von Hibernate nach 3.3.2GA dieses Verhalten?