MetadataIdentifierTemplateSpecs { public static Specification<MetadataIdentifierTemplate> isSystemProvided(final boolean isSystemProvided) { return new Specification<MetadataIdentifierTemplate>() { @Override public Predicate toPredicate(Root<MetadataIdentifierTemplate> root, CriteriaQuery<?> query, CriteriaBuilder cb) { Path<Character> defaultAttributePath = root.get(MetadataIdentifierTemplate_.systemProvided_JPAWorkaround); Predicate systemProvidedDefaultPredicate = cb.equal(defaultAttributePath, cb.literal(Constants.toYN_EnabledChar(isSystemProvided))); return systemProvidedDefaultPredicate; } }; } private  MetadataIdentifierTemplateSpecs(); static Specification<MetadataIdentifierTemplate> isSystemProvided(final boolean isSystemProvided);  }
@Test public void testIsSystemProvided() throws Exception { MetadataIdentifierTemplate template1 = MetadataIdentifierTemplateRepositoryTest.newMetadataUrnTemplate(_inc); template1.setSystemDefault(true); template1 = mdIdentifierTemplateRepository.save(template1); MetadataIdentifierTemplate template2 = mdIdentifierTemplateRepository.save(MetadataIdentifierTemplateRepositoryTest.newMetadataUrnTemplate(_inc)); MetadataIdentifierTemplate template3 = mdIdentifierTemplateRepository.save(MetadataIdentifierTemplateRepositoryTest.newMetadataUrnTemplate(_inc)); final Specification<MetadataIdentifierTemplate> specificationDefault = MetadataIdentifierTemplateSpecs.isSystemProvided(true); long numDefaultTemplates = mdIdentifierTemplateRepository.count(specificationDefault); assertEquals(1, numDefaultTemplates); final Specification<MetadataIdentifierTemplate> specificationNoDefault = MetadataIdentifierTemplateSpecs.isSystemProvided(false); long numNoDefaultTemplates = mdIdentifierTemplateRepository.count(specificationNoDefault); assertEquals(2, numNoDefaultTemplates); }