public static boolean validateInterleaved()

in google-cloud-spanner-hibernate-dialect/src/main/java/com/google/cloud/spanner/hibernate/schema/SchemaUtils.java [71:91]


  public static boolean validateInterleaved(Class<?> potentialChild) {
    Interleaved interleaved = potentialChild.getAnnotation(Interleaved.class);

    if (null == interleaved) {
      // not interleaved, we're good
      return true;
    }

    try {
      Set<SpannerEntityFieldKey> childIds = resolveIdFields(potentialChild, new HashSet<>());
      Set<SpannerEntityFieldKey> parentIds =
          resolveIdFields(interleaved.parentEntity(), new HashSet<>());

      // Child ids should be super set of parent ids
      return childIds.size() > parentIds.size() && childIds.containsAll(parentIds);

    } catch (SecurityException se) {
      // Could not prove the interleaved table to be invalid, so assume valid
      return true;
    }
  }