Skip to content

Commit 33afa0f

Browse files
committed
Fix #72 (I hope)
1 parent 9cafbfa commit 33afa0f

File tree

3 files changed

+41
-6
lines changed

3 files changed

+41
-6
lines changed

hibernate4/src/main/java/com/fasterxml/jackson/datatype/hibernate4/HibernateAnnotationIntrospector.java

+21-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
package com.fasterxml.jackson.datatype.hibernate4;
22

3+
import javax.persistence.Transient;
4+
5+
import org.hibernate.bytecode.internal.javassist.FieldHandler;
6+
37
import com.fasterxml.jackson.core.Version;
4-
import com.fasterxml.jackson.databind.AnnotationIntrospector;
8+
import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
59
import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
6-
7-
import javax.persistence.Transient;
10+
import com.fasterxml.jackson.databind.introspect.NopAnnotationIntrospector;
811

912
/**
1013
* Simple {@link com.fasterxml.jackson.databind.AnnotationIntrospector} that adds support for using
1114
* {@link javax.persistence.Transient} to denote ignorable fields (alongside with Jackson
1215
* and/or JAXB annotations).
1316
*/
14-
public class HibernateAnnotationIntrospector extends AnnotationIntrospector
17+
public class HibernateAnnotationIntrospector extends NopAnnotationIntrospector
1518
{
1619
private static final long serialVersionUID = 1L;
1720

@@ -67,4 +70,18 @@ public Version version() {
6770
public boolean hasIgnoreMarker(AnnotatedMember m) {
6871
return _cfgCheckTransient && m.hasAnnotation(Transient.class);
6972
}
73+
74+
@Override
75+
public Boolean isIgnorableType(AnnotatedClass ac)
76+
{
77+
/* 26-Dec-2015, tatu: To fix [datatype-hibernate#72], need to suppress handling
78+
* of `FieldHandled`. Not sure if it works without test (alas, none provided),
79+
* but will try our best -- problem is, if it'
80+
*/
81+
// ... could we avoid direct class reference?
82+
if (FieldHandler.class.isAssignableFrom(ac.getAnnotated())) {
83+
return Boolean.TRUE;
84+
}
85+
return null;
86+
}
7087
}

hibernate5/src/main/java/com/fasterxml/jackson/datatype/hibernate5/HibernateAnnotationIntrospector.java

+19-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package com.fasterxml.jackson.datatype.hibernate5;
22

3+
import javax.persistence.Transient;
4+
5+
import org.hibernate.bytecode.internal.javassist.FieldHandler;
6+
37
import com.fasterxml.jackson.core.Version;
48
import com.fasterxml.jackson.databind.AnnotationIntrospector;
9+
import com.fasterxml.jackson.databind.introspect.AnnotatedClass;
510
import com.fasterxml.jackson.databind.introspect.AnnotatedMember;
611

7-
import javax.persistence.Transient;
8-
912
/**
1013
* Simple {@link com.fasterxml.jackson.databind.AnnotationIntrospector} that adds support for using
1114
* {@link javax.persistence.Transient} to denote ignorable fields (alongside with Jackson
@@ -67,4 +70,18 @@ public Version version() {
6770
public boolean hasIgnoreMarker(AnnotatedMember m) {
6871
return _cfgCheckTransient && m.hasAnnotation(Transient.class);
6972
}
73+
74+
@Override
75+
public Boolean isIgnorableType(AnnotatedClass ac)
76+
{
77+
/* 26-Dec-2015, tatu: To fix [datatype-hibernate#72], need to suppress handling
78+
* of `FieldHandled`. Not sure if it works without test (alas, none provided),
79+
* but will try our best -- problem is, if it'
80+
*/
81+
// ... could we avoid direct class reference?
82+
if (FieldHandler.class.isAssignableFrom(ac.getAnnotated())) {
83+
return Boolean.TRUE;
84+
}
85+
return null;
86+
}
7087
}

release-notes/VERSION

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Project: jackson-datatype-hibernate
66

77
2.7.0 (not yet released)
88

9+
#72: Should ignore org.hibernate.bytecode.internal.javassist.FieldHandled.getFieldHandler()
910
#79: Upgrade hibernate5 dep to latest Hibernate version, 5.0.6
1011

1112
2.6.3 (12-Oct-2015)

0 commit comments

Comments
 (0)