Commit Graph

217 Commits

Author SHA1 Message Date
Oliver Gierke
16f6170019 DATAJPA-285 - Removed obsolete resources after upgrade to new build.
Simplified structure of Docbook documentation source files. Updated copyright range to include 2013.
2013-01-31 13:12:31 +01:00
Oliver Gierke
7cba94261e DATACMNS-277 - Include general auditing documentation from Spring Data Commons. 2013-01-30 15:09:57 +01:00
Thomas Darimont
562dc19b8c DATAJPA-266 - Fixed SimpleJpaRepository.exists(…) for composite ids.
We now build a correct count query for entities that use a compound key mapped using @IdClass. Added integration tests for EclipseLink and OpenJPA to run the basic tests of SimpleJpaRepository against different persistence providers. Ignored failing test against OpenJPA.
2013-01-28 10:58:33 +01:00
Oliver Gierke
943be87908 DATAJPA-288 - Separate test execution for different persistence providers.
Re-enabled more integration tests integration tests.
2013-01-25 18:51:20 +01:00
Oliver Gierke
a74fadd234 DATAJPA-287 - Count query execution now considers distinct flag of query.
If the implementation of a Specification sets the distinct flag, we now create a count query that is honoring the distinct flag as well.
2013-01-25 18:50:45 +01:00
Ranie Jade Ramiso
6b95150762 DATAJPA-280 - Added null guards to AuditingHandler access.
In case the AuditingEntityListener is declared globally and <jpa:auditing /> is not activated the listener is considered by the JPA infrastructure but not configured correctly. In particular no AuditingHandler gets injected which leads to NullPointerExceptions every time an entity is persisted. Added checks for null to the access and skip it if no AuditingHandler is present.
2013-01-17 16:54:11 +01:00
Oliver Gierke
28a565faec DATAJPA-286 - Added test infrastructure for plain JPA tests.
Added integration tests in org.springframework.data.jpa.infrastructure that will not be included in the normal test execution as they are purely means to quickly identify potential differences in persistence provider implementations.
2013-01-17 16:08:00 +01:00
Oliver Gierke
bc6e2a7bc9 DATAJPA-277 - Specification execution with sorting now uses left joins where necessary.
When applying sorting options to a Specification based query we have to make sure to apply left joins where necessary as we otherwise exclude results with null associations. Applying the sort options does an enhanced inspection of the target path and declares a left join instead of a get if the path logically points to an entity. The Metamodel API is not without caveats here, see http://bit.ly/10geC02.
2013-01-17 15:34:10 +01:00
Oliver Gierke
02239859bb DATAJPA-284 - Added @OneToOne as annotation to be considered an association. 2013-01-16 17:48:56 +01:00
Oliver Gierke
a7e5784406 DATAJPA-283 - Support accessor method level mapping annotations.
Upgraded to use new methods introduced for DATACMNS-269 to be able to detect mapping annotations independently of whether they are declared on the field or an accessor method for the property. Upgraded to new artifactId Spring Data Commons is distributed under.
2013-01-16 17:48:16 +01:00
Oliver Gierke
1b0e87bc18 DATAJPA-282 - Polished JavaDoc. 2013-01-15 22:21:57 +01:00
Oliver Gierke
258af43397 DATAJPA-274 - Introduce JPA Metamodel based MappingContext implementation.
Implemented rudimentary MappingContext to expose a JpaPersistentEntity through RepositoryFactoryInformation.
2012-11-28 18:15:49 +01:00
Oliver Gierke
69bcc3d887 DATAJPA-272 - Polished logging setup to reduce noise in test cases. 2012-11-27 16:14:53 +01:00
Oliver Gierke
fc818b7087 DATAJPA-116 - Improved implementation to support annotation-based auditing.
Re-engineered our auditing setup to leverage the APIs introduced from DATACMNS-137.
2012-11-27 15:26:22 +01:00
Oliver Gierke
5aab6a90db DATAJPA-271 - Switched to Logback for test logging. 2012-11-19 23:45:08 +01:00
Oliver Gierke
688f62516b DATAJPA-268 - LockModePopulatingMethodInterceptor cleans up resources correctly.
LockModePopulatingMethodInterceptor now safely unbinds the LockModeMetadata after the target method invocation completes.
2012-11-06 14:30:16 +01:00
Oliver Gierke
ca160313f6 DATAJPA-254 - Updates of reference documentation and changelog. 2012-10-10 13:26:39 +02:00
Oliver Gierke
e28b6fc522 DATAJPA-257 - Make count query execution in SimpleJpaRepository more 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.
2012-09-21 15:17:08 +02:00
Oliver Gierke
3b2818df9a DATAJPA-251 - Polished reference documentation. 2012-09-17 16:27:40 +02:00
Oliver Gierke
918099e395 DATAJPA-253 - Fixed application of Specifications.not(…).
Specifications.not(…) now also gets applied correctly when used without where(…) wrapper. Polished Specifications class, JavaDoc and added not null assertions.
2012-08-30 11:36:09 +02:00
Oliver Gierke
a9cfe73511 DATAJPA-252 - Applying sort to manually defined queries considers joins.
If a manually defined query uses outer joins, prefixing the sort criteria handed to the execution of the method causes an additional join being added as the JPA considers path expressions to be inner joins always (see Sect. 4.4.4, JPA 2.0 spec).

We now parse the outer join aliases potentially used in a manually defined JPQL query and do not prefix the query with the root entity's alias.
2012-08-29 17:16:33 +02:00
Oliver Gierke
83345426b7 DATAJPA-246 - Updated changelog for 1.2.0.RC1. 2012-08-24 11:11:35 +02:00
Oliver Gierke
33912ce9ff DATAJPA-246 - Updated to Spring Data Commons 1.4.0.RC1. 2012-08-23 20:11:41 +02:00
Oliver Gierke
732d6ec261 DATAJPA-244 - Use ClassLoader of EntityManager for implementation lookup.
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.
2012-08-13 18:52:50 +02:00
Oliver Gierke
32dbd52c57 DATAJPA-69 - @EnableJpaRepositories is now inherited into sub-classes. 2012-08-13 11:29:28 +02:00
Oliver Gierke
e59b8b3194 DATAJPA-243 - QueryDslJpaRepository applies sort given through Pageable correctly.
During the refactoring of the Querydsl interaction a regression of not applying a Sort wrapped in a Pageable was introduced in QueryDsl utility class.
2012-08-13 10:28:12 +02:00
Oliver Gierke
c90d1c122d DATAJPA-241 - Polished logging in NamedQuery. 2012-08-02 11:04:20 +02:00
Oliver Gierke
54675ffd53 DATAJPA-239 - Fixed namespace reference to repository XSD. 2012-07-31 11:27:50 +02:00
Oliver Gierke
e3f95345c0 DATAJPA-235 - Prepare changelog for 1.2.0.M1. 2012-07-23 19:59:48 +02:00
Oliver Gierke
2d4bca7a4d DATAJPA-227 - Improved documentation on native queries with @Query. 2012-07-23 19:59:48 +02:00
Oliver Gierke
19d2f6166f DATAJPA-235 - Upgrade to Spring Data Commons 1.4.0.M1. 2012-07-23 19:59:43 +02:00
Oliver Gierke
372ac45922 DATAJPA-232 - Fixed parameter binding in SimpleJpaRepository.findAll(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.
2012-07-19 09:58:39 +02:00
Oliver Gierke
42718c57fe Check OpenJpa query validation. 2012-07-18 11:35:04 +02:00
Oliver Gierke
9734010d8e DATAJPA-226 - Working around ambiguities in the JPA spec.
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
2012-07-17 11:41:26 +02:00
Oliver Gierke
2087ce29d2 DATAJPA-69 - Added JavaConfig support for repositories.
The repositories can now be bootstrapped using @EnableJpaRepositories annotation as follows:

@Configuration
@EnableJpaRepositories
class ApplicationConfig {
  
  // … declare EntityManagerFactory
  // … declare PlatformTransactionManager
}
2012-07-16 20:25:49 +02:00
Oliver Gierke
de16544194 DATAJPA-226 - Test case failing to reproduce the issue. 2012-07-16 17:19:06 +02:00
Oliver Gierke
4c1a1450b9 DATAJPA-176 - Introduce Querydsl abstraction.
Introduced Querydsl helper class to allow using more functionality from QuerydslJpaRepository as well as QuerydslRepositorySupport. Moved applyPagination(…) and applySorting(…) methods into that helper class. Removed QuerydslUtils and moved functionality into Querydsl helper.

This change breaks exposed API in Querydsl repo and repo support classes.
2012-06-04 16:33:58 +02:00
Oliver Gierke
d47a61e39b DATAJPA-212 - Updated changelog. 2012-05-16 19:49:09 +02:00
Oliver Gierke
ab2b69d4a7 DATAJPA-194 - Upgrade to Spring Data Commons 1.3.0.RELEASE. 2012-05-16 19:38:12 +02:00
Oliver Gierke
fd32f9fd62 DATAJPA-212 - Polished JavaDoc. 2012-05-16 16:52:18 +02:00
Oliver Gierke
4e3dfdfd02 DATAJPA-211 - Documented CDI integration.
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.
2012-05-16 16:21:49 +02:00
Oliver Gierke
fd930e3fde DATACMNS-171 - Let JpaQueryMethod new method of QueryMethod.
Drop custom method to determine whether a query method returns an entity and rather use the newly introduced method in Spring Data Commons' QueryMethod.
2012-05-16 14:36:06 +02:00
Oliver Gierke
72da417171 Improve project setup.
Reactivated test cases that were not executed because they were named *Test, not *Tests. Upgraded to Maven Surefire Plugin 2.12 and activated parallel test execution per method. Upgraded Maven Compiler Plugin to 2.4.
2012-05-15 17:58:25 +02:00
Oliver Gierke
f466744acd DATAJPA-207 - Fixed query creation for projections on native queries.
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).
2012-05-15 17:57:08 +02:00
Oliver Gierke
831cf83658 Removed FindBugs glitches discovered through Sonar. 2012-05-11 21:18:53 +02:00
Oliver Gierke
f8fd5c4b7a DATACMNS-166 - Adapted changes in Spring Data Commons. 2012-05-02 19:55:10 +02:00
Oliver Gierke
5eaa686b9b DATAJPA-201 - Fixed NullPointerException for null Pageables.
The optimization for DATAJPA-124 introduced a NullPointerException being thrown if the Pageable instance handed to a paging query was null. Added a guard to handle this situation correctly. Unfortunately had to disable the test case for EclipseLink as the bug with HSQL still exists.
2012-04-27 18:44:48 +02:00
Oliver Gierke
9c20aff99d DATAJPA-201 - Test case showing handing in null for Pageable arguments works. 2012-04-26 19:22:40 +02:00
Oliver Gierke
11d624f266 DATAJPA-177 - Throw exception if entity to delete does not exist.
We now do an exists check inside SimpleJpaRepository.delete(ID id) before actually triggering the deletion to avoid an exception when trying to delete a null value. We throw an EmptyResultDataAccessException to indicate the nonexistent entity now.
2012-04-15 20:24:41 +02:00
Oliver Gierke
24e4ac8e7b DATAJPA-153 - Fixed typos in reference documentation. 2012-04-15 19:42:45 +02:00