public abstract class org.springframework.data.mapping.model.AnnotationBasedPersistentProperty<P extends org.springframework.data.mapping.PersistentProperty<P>> extends org.springframework.data.mapping.model.AbstractPersistentProperty<P>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.springframework.data.mapping.model.AnnotationBasedPersistentProperty
  super_class: org.springframework.data.mapping.model.AbstractPersistentProperty
{
  private static final java.lang.String SPRING_DATA_PACKAGE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "org.springframework.data"

  private final java.lang.String value;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  private final java.util.Map<java.lang.Class<? extends java.lang.annotation.Annotation>, java.util.Optional<? extends java.lang.annotation.Annotation>> annotationCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;Ljava/util/Optional<+Ljava/lang/annotation/Annotation;>;>;

  private final org.springframework.data.util.Lazy<java.lang.Boolean> usePropertyAccess;
    descriptor: Lorg/springframework/data/util/Lazy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/springframework/data/util/Lazy<Ljava/lang/Boolean;>;

  private final org.springframework.data.util.Lazy<java.lang.Boolean> isTransient;
    descriptor: Lorg/springframework/data/util/Lazy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/springframework/data/util/Lazy<Ljava/lang/Boolean;>;

  private final org.springframework.data.util.Lazy<java.lang.Boolean> isWritable;
    descriptor: Lorg/springframework/data/util/Lazy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/springframework/data/util/Lazy<Ljava/lang/Boolean;>;

  private final org.springframework.data.util.Lazy<java.lang.Boolean> isReference;
    descriptor: Lorg/springframework/data/util/Lazy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/springframework/data/util/Lazy<Ljava/lang/Boolean;>;

  private final org.springframework.data.util.Lazy<java.lang.Boolean> isId;
    descriptor: Lorg/springframework/data/util/Lazy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/springframework/data/util/Lazy<Ljava/lang/Boolean;>;

  private final org.springframework.data.util.Lazy<java.lang.Boolean> isVersion;
    descriptor: Lorg/springframework/data/util/Lazy;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lorg/springframework/data/util/Lazy<Ljava/lang/Boolean;>;

  public void <init>(org.springframework.data.mapping.model.Property, org.springframework.data.mapping.PersistentEntity<?, P>, org.springframework.data.mapping.model.SimpleTypeHolder);
    descriptor: (Lorg/springframework/data/mapping/model/Property;Lorg/springframework/data/mapping/PersistentEntity;Lorg/springframework/data/mapping/model/SimpleTypeHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
        start local 1 // org.springframework.data.mapping.model.Property property
        start local 2 // org.springframework.data.mapping.PersistentEntity owner
        start local 3 // org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder
         0: .line 86
            aload 0 /* this */
            aload 1 /* property */
            aload 2 /* owner */
            aload 3 /* simpleTypeHolder */
            invokespecial org.springframework.data.mapping.model.AbstractPersistentProperty.<init>:(Lorg/springframework/data/mapping/model/Property;Lorg/springframework/data/mapping/PersistentEntity;Lorg/springframework/data/mapping/model/SimpleTypeHolder;)V
         1: .line 59
            aload 0 /* this */
            new java.util.concurrent.ConcurrentHashMap
            dup
            invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
            putfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.annotationCache:Ljava/util/Map;
         2: .line 61
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic get(Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.lambda$0()Ljava/lang/Boolean; (7)
                  ()Ljava/lang/Boolean;
            invokestatic org.springframework.data.util.Lazy.of:(Ljava/util/function/Supplier;)Lorg/springframework/data/util/Lazy;
            putfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.usePropertyAccess:Lorg/springframework/data/util/Lazy;
         3: .line 68
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic get(Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.lambda$1()Ljava/lang/Boolean; (7)
                  ()Ljava/lang/Boolean;
            invokestatic org.springframework.data.util.Lazy.of:(Ljava/util/function/Supplier;)Lorg/springframework/data/util/Lazy;
            putfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isTransient:Lorg/springframework/data/util/Lazy;
         4: .line 71
            aload 0 /* this */
         5: .line 72
            aload 0 /* this */
            invokedynamic get(Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.lambda$2()Ljava/lang/Boolean; (7)
                  ()Ljava/lang/Boolean;
            invokestatic org.springframework.data.util.Lazy.of:(Ljava/util/function/Supplier;)Lorg/springframework/data/util/Lazy;
            putfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isWritable:Lorg/springframework/data/util/Lazy;
         6: .line 73
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic get(Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.lambda$3()Ljava/lang/Boolean; (7)
                  ()Ljava/lang/Boolean;
            invokestatic org.springframework.data.util.Lazy.of:(Ljava/util/function/Supplier;)Lorg/springframework/data/util/Lazy;
            putfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isReference:Lorg/springframework/data/util/Lazy;
         7: .line 74
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic get(Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.lambda$4()Ljava/lang/Boolean; (7)
                  ()Ljava/lang/Boolean;
            invokestatic org.springframework.data.util.Lazy.of:(Ljava/util/function/Supplier;)Lorg/springframework/data/util/Lazy;
            putfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isId:Lorg/springframework/data/util/Lazy;
         8: .line 75
            aload 0 /* this */
            aload 0 /* this */
            invokedynamic get(Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.lambda$5()Ljava/lang/Boolean; (7)
                  ()Ljava/lang/Boolean;
            invokestatic org.springframework.data.util.Lazy.of:(Ljava/util/function/Supplier;)Lorg/springframework/data/util/Lazy;
            putfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isVersion:Lorg/springframework/data/util/Lazy;
         9: .line 88
            aload 0 /* this */
            aload 1 /* property */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.populateAnnotationCache:(Lorg/springframework/data/mapping/model/Property;)V
        10: .line 90
            aload 0 /* this */
            ldc Lorg/springframework/beans/factory/annotation/Value;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.findAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.springframework.beans.factory.annotation.Value
            astore 4 /* value */
        start local 4 // org.springframework.beans.factory.annotation.Value value
        11: .line 92
            aload 0 /* this */
            aload 4 /* value */
            ifnonnull 12
            aconst_null
            goto 13
      StackMap locals: org.springframework.data.mapping.model.AnnotationBasedPersistentProperty org.springframework.data.mapping.model.Property org.springframework.data.mapping.PersistentEntity org.springframework.data.mapping.model.SimpleTypeHolder org.springframework.beans.factory.annotation.Value
      StackMap stack: org.springframework.data.mapping.model.AnnotationBasedPersistentProperty
        12: aload 4 /* value */
            invokeinterface org.springframework.beans.factory.annotation.Value.value:()Ljava/lang/String;
      StackMap locals: org.springframework.data.mapping.model.AnnotationBasedPersistentProperty org.springframework.data.mapping.model.Property org.springframework.data.mapping.PersistentEntity org.springframework.data.mapping.model.SimpleTypeHolder org.springframework.beans.factory.annotation.Value
      StackMap stack: org.springframework.data.mapping.model.AnnotationBasedPersistentProperty java.lang.String
        13: putfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.value:Ljava/lang/String;
        14: .line 93
            return
        end local 4 // org.springframework.beans.factory.annotation.Value value
        end local 3 // org.springframework.data.mapping.model.SimpleTypeHolder simpleTypeHolder
        end local 2 // org.springframework.data.mapping.PersistentEntity owner
        end local 1 // org.springframework.data.mapping.model.Property property
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   15     0              this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
            0   15     1          property  Lorg/springframework/data/mapping/model/Property;
            0   15     2             owner  Lorg/springframework/data/mapping/PersistentEntity<*TP;>;
            0   15     3  simpleTypeHolder  Lorg/springframework/data/mapping/model/SimpleTypeHolder;
           11   15     4             value  Lorg/springframework/beans/factory/annotation/Value;
    Signature: (Lorg/springframework/data/mapping/model/Property;Lorg/springframework/data/mapping/PersistentEntity<*TP;>;Lorg/springframework/data/mapping/model/SimpleTypeHolder;)V
    MethodParameters:
                  Name  Flags
      property          
      owner             
      simpleTypeHolder  

  private void populateAnnotationCache(org.springframework.data.mapping.model.Property);
    descriptor: (Lorg/springframework/data/mapping/model/Property;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 120
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tThe method getField() is undefined for the type Property\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
    MethodParameters:
          Name  Flags
      property  

  private void validateAnnotation(java.lang.annotation.Annotation, java.lang.String, java.lang.Object[]);
    descriptor: (Ljava/lang/annotation/Annotation;Ljava/lang/String;[Ljava/lang/Object;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
        start local 1 // java.lang.annotation.Annotation candidate
        start local 2 // java.lang.String message
        start local 3 // java.lang.Object[] arguments
         0: .line 146
            aload 1 /* candidate */
            invokeinterface java.lang.annotation.Annotation.annotationType:()Ljava/lang/Class;
            astore 4 /* annotationType */
        start local 4 // java.lang.Class annotationType
         1: .line 148
            aload 4 /* annotationType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "org.springframework.data"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 3
         2: .line 149
            return
         3: .line 152
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.annotationCache:Ljava/util/Map;
            aload 4 /* annotationType */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 153
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.annotationCache:Ljava/util/Map;
            aload 4 /* annotationType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Optional
            aload 1 /* candidate */
            invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
            invokevirtual java.util.Optional.equals:(Ljava/lang/Object;)Z
            ifne 6
         5: .line 154
            new org.springframework.data.mapping.MappingException
            dup
            aload 2 /* message */
            aload 3 /* arguments */
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokespecial org.springframework.data.mapping.MappingException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 156
      StackMap locals:
      StackMap stack:
            return
        end local 4 // java.lang.Class annotationType
        end local 3 // java.lang.Object[] arguments
        end local 2 // java.lang.String message
        end local 1 // java.lang.annotation.Annotation candidate
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    7     0            this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
            0    7     1       candidate  Ljava/lang/annotation/Annotation;
            0    7     2         message  Ljava/lang/String;
            0    7     3       arguments  [Ljava/lang/Object;
            1    7     4  annotationType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    MethodParameters:
           Name  Flags
      candidate  
      message    
      arguments  

  public java.lang.String getSpelExpression();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 167
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.value:Ljava/lang/String;
            areturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public boolean isTransient();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 178
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isTransient:Lorg/springframework/data/util/Lazy;
            invokevirtual org.springframework.data.util.Lazy.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  public boolean isIdProperty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 186
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isId:Lorg/springframework/data/util/Lazy;
            invokevirtual org.springframework.data.util.Lazy.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  public boolean isVersionProperty();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 194
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isVersion:Lorg/springframework/data/util/Lazy;
            invokevirtual org.springframework.data.util.Lazy.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  public boolean isAssociation();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 202
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isReference:Lorg/springframework/data/util/Lazy;
            invokevirtual org.springframework.data.util.Lazy.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  public boolean isWritable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 211
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isWritable:Lorg/springframework/data/util/Lazy;
            invokevirtual org.springframework.data.util.Lazy.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  public <A extends java.lang.annotation.Annotation> A findAnnotation(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
        start local 1 // java.lang.Class annotationType
         0: .line 225
            aload 1 /* annotationType */
            ldc "Annotation type must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 227
            aload 0 /* this */
            aload 1 /* annotationType */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.doFindAnnotation:(Ljava/lang/Class;)Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.annotation.Annotation
            areturn
        end local 1 // java.lang.Class annotationType
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
            0    2     1  annotationType  Ljava/lang/Class<TA;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
                Name  Flags
      annotationType  

  private <A extends java.lang.annotation.Annotation> java.util.Optional<A> doFindAnnotation(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/util/Optional;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
        start local 1 // java.lang.Class annotationType
         0: .line 233
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.annotationCache:Ljava/util/Map;
            aload 1 /* annotationType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.Optional
            astore 2 /* annotation */
        start local 2 // java.util.Optional annotation
         1: .line 235
            aload 2 /* annotation */
            ifnull 3
         2: .line 236
            aload 2 /* annotation */
            areturn
         3: .line 239
      StackMap locals: java.util.Optional
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.annotationCache:Ljava/util/Map;
            aload 1 /* annotationType */
            aload 0 /* this */
            invokedynamic apply(Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.lambda$8(Ljava/lang/Class;)Ljava/util/Optional; (7)
                  (Ljava/lang/Class;)Ljava/util/Optional;
            invokeinterface java.util.Map.computeIfAbsent:(Ljava/lang/Object;Ljava/util/function/Function;)Ljava/lang/Object;
            checkcast java.util.Optional
            areturn
        end local 2 // java.util.Optional annotation
        end local 1 // java.lang.Class annotationType
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
            0    4     1  annotationType  Ljava/lang/Class<TA;>;
            1    4     2      annotation  Ljava/util/Optional<+Ljava/lang/annotation/Annotation;>;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)Ljava/util/Optional<TA;>;
    MethodParameters:
                Name  Flags
      annotationType  

  public <A extends java.lang.annotation.Annotation> A findPropertyOrOwnerAnnotation(java.lang.Class<A>);
    descriptor: (Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
        start local 1 // java.lang.Class annotationType
         0: .line 256
            aload 0 /* this */
            aload 1 /* annotationType */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.findAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            astore 2 /* annotation */
        start local 2 // java.lang.annotation.Annotation annotation
         1: .line 258
            aload 2 /* annotation */
            ifnull 2
            aload 2 /* annotation */
            goto 3
      StackMap locals: java.lang.annotation.Annotation
      StackMap stack:
         2: aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.getOwner:()Lorg/springframework/data/mapping/PersistentEntity;
            aload 1 /* annotationType */
            invokeinterface org.springframework.data.mapping.PersistentEntity.findAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
      StackMap locals:
      StackMap stack: java.lang.annotation.Annotation
         3: areturn
        end local 2 // java.lang.annotation.Annotation annotation
        end local 1 // java.lang.Class annotationType
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
            0    4     1  annotationType  Ljava/lang/Class<TA;>;
            1    4     2      annotation  TA;
    Signature: <A::Ljava/lang/annotation/Annotation;>(Ljava/lang/Class<TA;>;)TA;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
                Name  Flags
      annotationType  

  public boolean isAnnotationPresent(java.lang.Class<? extends java.lang.annotation.Annotation>);
    descriptor: (Ljava/lang/Class;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
        start local 1 // java.lang.Class annotationType
         0: .line 268
            aload 0 /* this */
            aload 1 /* annotationType */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.doFindAnnotation:(Ljava/lang/Class;)Ljava/util/Optional;
            invokevirtual java.util.Optional.isPresent:()Z
            ireturn
        end local 1 // java.lang.Class annotationType
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    1     0            this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
            0    1     1  annotationType  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;
    Signature: (Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;)Z
    MethodParameters:
                Name  Flags
      annotationType  

  public boolean usePropertyAccess();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 277
            aload 0 /* this */
            getfield org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.usePropertyAccess:Lorg/springframework/data/util/Lazy;
            invokevirtual org.springframework.data.util.Lazy.get:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  public java.lang.Class<?> getAssociationTargetType();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 288
            aload 0 /* this */
            ldc Lorg/springframework/data/annotation/Reference;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.findAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.springframework.data.annotation.Reference
            astore 1 /* reference */
        start local 1 // org.springframework.data.annotation.Reference reference
         1: .line 290
            aload 1 /* reference */
            ifnonnull 5
         2: .line 291
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isEntity:()Z
            ifeq 3
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.getActualType:()Ljava/lang/Class;
            goto 4
      StackMap locals: org.springframework.data.annotation.Reference
      StackMap stack:
         3: aconst_null
      StackMap locals:
      StackMap stack: java.lang.Class
         4: areturn
         5: .line 294
      StackMap locals:
      StackMap stack:
            aload 1 /* reference */
            invokeinterface org.springframework.data.annotation.Reference.to:()Ljava/lang/Class;
            astore 2 /* targetType */
        start local 2 // java.lang.Class targetType
         6: .line 296
            ldc Ljava/lang/Class;
            aload 2 /* targetType */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 9
         7: .line 297
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isEntity:()Z
            ifeq 8
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.getActualType:()Ljava/lang/Class;
            goto 10
      StackMap locals: java.lang.Class
      StackMap stack:
         8: aconst_null
            goto 10
         9: .line 298
      StackMap locals:
      StackMap stack:
            aload 2 /* targetType */
        10: .line 296
      StackMap locals:
      StackMap stack: java.lang.Class
            areturn
        end local 2 // java.lang.Class targetType
        end local 1 // org.springframework.data.annotation.Reference reference
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
            1   11     1   reference  Lorg/springframework/data/annotation/Reference;
            6   11     2  targetType  Ljava/lang/Class<*>;
    Signature: ()Ljava/lang/Class<*>;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 309
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tThe method getProperty() is undefined for the type AnnotationBasedPersistentProperty<P>\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  private java.util.stream.Stream<? extends java.lang.reflect.AnnotatedElement> getAccessors();
    descriptor: ()Ljava/util/stream/Stream;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 322
            iconst_3
            anewarray java.util.Optional
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.getGetter:()Ljava/lang/reflect/Method;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.getSetter:()Ljava/lang/reflect/Method;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            aastore
            dup
            iconst_2
         1: .line 323
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.getField:()Ljava/lang/reflect/Field;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            aastore
         2: .line 322
            invokestatic org.springframework.data.util.Optionals.toStream:([Ljava/util/Optional;)Ljava/util/stream/Stream;
            areturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
    Signature: ()Ljava/util/stream/Stream<+Ljava/lang/reflect/AnnotatedElement;>;

  private java.lang.Boolean lambda$0();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 63
            aload 0 /* this */
            ldc Lorg/springframework/data/annotation/AccessType;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.findPropertyOrOwnerAnnotation:(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.springframework.data.annotation.AccessType
            astore 1 /* accessType */
        start local 1 // org.springframework.data.annotation.AccessType accessType
         1: .line 65
            aload 1 /* accessType */
            ifnull 2
            getstatic org.springframework.data.annotation.AccessType$Type.PROPERTY:Lorg/springframework/data/annotation/AccessType$Type;
            aload 1 /* accessType */
            invokeinterface org.springframework.data.annotation.AccessType.value:()Lorg/springframework/data/annotation/AccessType$Type;
            invokevirtual org.springframework.data.annotation.AccessType$Type.equals:(Ljava/lang/Object;)Z
            ifne 3
      StackMap locals: org.springframework.data.annotation.AccessType
      StackMap stack:
         2: aload 0 /* this */
            invokespecial org.springframework.data.mapping.model.AbstractPersistentProperty.usePropertyAccess:()Z
            ifne 3
            iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      StackMap locals:
      StackMap stack:
         3: iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 1 // org.springframework.data.annotation.AccessType accessType
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
            1    4     1  accessType  Lorg/springframework/data/annotation/AccessType;

  private java.lang.Boolean lambda$1();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 68
            aload 0 /* this */
            invokespecial org.springframework.data.mapping.model.AbstractPersistentProperty.isTransient:()Z
            ifne 2
            aload 0 /* this */
            ldc Lorg/springframework/data/annotation/Transient;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifne 2
         1: .line 69
            aload 0 /* this */
            ldc Lorg/springframework/beans/factory/annotation/Value;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifne 2
            aload 0 /* this */
            ldc Lorg/springframework/beans/factory/annotation/Autowired;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifne 2
            iconst_0
            goto 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
      StackMap locals:
      StackMap stack: int
         3: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  private java.lang.Boolean lambda$2();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 72
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isTransient:()Z
            ifne 1
            aload 0 /* this */
            ldc Lorg/springframework/data/annotation/ReadOnlyProperty;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  private java.lang.Boolean lambda$3();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 73
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isTransient:()Z
            ifne 1
            aload 0 /* this */
            ldc Lorg/springframework/data/annotation/Reference;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isAnnotationPresent:(Ljava/lang/Class;)Z
            ifeq 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  private java.lang.Boolean lambda$4();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 74
            aload 0 /* this */
            ldc Lorg/springframework/data/annotation/Id;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isAnnotationPresent:(Ljava/lang/Class;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  private java.lang.Boolean lambda$5();
    descriptor: ()Ljava/lang/Boolean;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
         0: .line 75
            aload 0 /* this */
            ldc Lorg/springframework/data/annotation/Version;
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.isAnnotationPresent:(Ljava/lang/Class;)Z
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;

  private java.util.Optional lambda$8(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/util/Optional;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
        start local 1 // java.lang.Class type
         0: .line 241
            aload 0 /* this */
            invokevirtual org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.getAccessors:()Ljava/util/stream/Stream;
         1: .line 242
            aload 1 /* type */
            invokedynamic apply(Ljava/lang/Class;)Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/springframework/data/mapping/model/AnnotationBasedPersistentProperty.lambda$9(Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)Ljava/lang/annotation/Annotation; (6)
                  (Ljava/lang/reflect/AnnotatedElement;)Ljava/lang/annotation/Annotation;
            invokeinterface java.util.stream.Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         2: .line 243
            invokedynamic apply()Ljava/util/function/Function;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;)Ljava/lang/Object;
                  org/springframework/data/util/StreamUtils.fromNullable(Ljava/lang/Object;)Ljava/util/stream/Stream; (6 itf)
                  (Ljava/lang/annotation/Annotation;)Ljava/util/stream/Stream;
            invokeinterface java.util.stream.Stream.flatMap:(Ljava/util/function/Function;)Ljava/util/stream/Stream;
         3: .line 244
            invokeinterface java.util.stream.Stream.findFirst:()Ljava/util/Optional;
         4: .line 241
            areturn
        end local 1 // java.lang.Class type
        end local 0 // org.springframework.data.mapping.model.AnnotationBasedPersistentProperty this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/springframework/data/mapping/model/AnnotationBasedPersistentProperty<TP;>;
            0    5     1  type  Ljava/lang/Class<+Ljava/lang/annotation/Annotation;>;

  private static java.lang.annotation.Annotation lambda$9(java.lang.Class, java.lang.reflect.AnnotatedElement);
    descriptor: (Ljava/lang/Class;Ljava/lang/reflect/AnnotatedElement;)Ljava/lang/annotation/Annotation;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 1 // java.lang.reflect.AnnotatedElement it
         0: .line 242
            aload 1 /* it */
            aload 0
            invokestatic org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            areturn
        end local 1 // java.lang.reflect.AnnotatedElement it
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     1    it  Ljava/lang/reflect/AnnotatedElement;
}
Signature: <P::Lorg/springframework/data/mapping/PersistentProperty<TP;>;>Lorg/springframework/data/mapping/model/AbstractPersistentProperty<TP;>;
SourceFile: "AnnotationBasedPersistentProperty.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Type = org.springframework.data.annotation.AccessType$Type of org.springframework.data.annotation.AccessType