Clarified that we derive the count query from the method name if no manual query is defined or from the manually defined query if defined.
Switched from SpringSource snapshot repository to release one. Excluded JUnit 3.8.1 dependency transitively pulled in through OpenJPA.
…robust. The execution of a count query can potentially return multiple values instead of just a single one. This causes persistence providers to throw an exception as we trigger ….getSingleResult() in SimpleJpaRepository. We're now calling …getResultList() and sum up all values returned.
Specifications.not(…) now also gets applied correctly when used without where(…) wrapper. Polished Specifications class, JavaDoc and added not null assertions.
…kup. JpaClasUtils.isEntityManagerOfType(…) now uses the given EntityManager's ClassLoader to try to load the given concrete classname. We're actually using the EntityManager's delegate here which is usually some provider specific implementation (e.g. a Hibernate Session). This assumes that the ClassLoader who initially loaded the class to create the delegate instance will also see the special EntityManager interface.
We've been relying on some compile time dependencies being pulled in transitively. This is now fixed by declaring those locally.
…Iterable<ID> ids). We bound the given Iterable<ID> using List as parameter type which gets rejected if you hand in something that's not a List actually (e.g. HashSet). Changed parameter binding to hand in Iterable now.
We now expect a much broader range of exceptions possibly popping up from EntityManager.createQuery(…). It turns out the spec is not very strict about what must be returned from the call in case the provided query String is invalid. E.g. Hibernate seems to throw an IllegalStateException in case the query seems generally acceptable but has a typo in some keyword. We now catch RuntimeException invoking the call and simply rethrow the original exception if it is an IllegalArgumentException indeed but wrap any other into an IAE. See http://java.net/projects/jpa-spec/lists/jsr338-experts/archive/2012-07/message/17
We now distribute the JPA Criteria API meta-model classes for AbstractPersistable and AbstractAuditable.
Added brief section on how to use the CDI extension. Poslished documentation in general: updated copyright year, removed revision history, fixed links to Maven repositories, added missing section ids to create stable links, improved CSS for HTML rendering, improved PDF rendering.
Drop custom method to determine whether a query method returns an entity and rather use the newly introduced method in Spring Data Commons' QueryMethod.
When executing a projecting query through a native query we must not use em.createNativeQuery(String, Class<?>) as this expects an entity type as type parameter. We now use the newly introduced isQueryMethodForEntity() on JpaQueryMethod to determine whether the query is actually projecting and rather use the plain em.createNativeQuery(String). Fixed dependency configuration for Hamcrest and JUnit (upgrade to JUnit 4.10, depending on junit-dep).
Added the ability to control whether Bundlor will fail on warnings or whether it is enabled at all, using Java system properties. By default, Bundlor will be enabled and will fail on warnings. Specifying `-DfailOnWarnings=true/false` and `-Dbundlor.enabled=true/false` as part of the Maven command will now control Bundlor's operation.