Commit Graph

167 Commits

Author SHA1 Message Date
manish-in-java
9fac01c2eb DATAJPA-186, DATAJPA-187 - Corrected typos in NamedQuery log output.
Change log level for one of the log messages in NamedQuery from INFO to WARN. This was done to provide more forceful information to the developer that sorting applied with named queries will be ignored.
2012-04-15 19:18:23 +02:00
Oliver Gierke
d24bdc7448 DATAJPA-191 - Adapted changes in CrudRepository.save(…) methods. 2012-04-13 21:34:31 +02:00
Oliver Gierke
393d3e2000 DATAJPA-189, DATAJPA-190 - Improvements to MergingPersistenceUnitManager.
MergingPersistenceUnitManager now also merges mapping file locations. We also make sure now that the persistence unit root URL does not get added twice accidentally as some persistence providers refuse to work then.
2012-04-12 09:39:21 +02:00
Oliver Gierke
f441087cf4 DATAJPA-180 - Added support for StartingWith, EndingWith, Containing to query creator.
The query derivation mechanism now supports StartingWith, EndingWith and Containing as keywords using the Criteria API's like predicate and massaging the given parameters accordingly. Refactored parameter binding  for CriteriaQuery instances to encapsulate the knowledge of how to massage a parameter based on the type.
2012-04-12 09:39:04 +02:00
Oliver Gierke
26f0eec010 DATAJPA-185 - Sanity check named parameter names in JpaQueryMethod.
To avoid the query execution to fail due to typos in the named parameter mapping, JpaQueryMethod now checks the named parameters potentially annotated using @Param to be present in the annotated query.
2012-04-11 20:48:34 +02:00
Oliver Gierke
c49e17fc0b DATAJPA-181 - Improve JPAQuery instantiation for Querydsl support.
Upgraded to Querydsl 2.3.3. We now choose the appropriate JPQLTemplate depending on the used persistence provider inside QueryDslRepositorySupport as well as QueryDslJpaRepository.
2012-04-11 07:20:34 +02:00
Oliver Gierke
046e7f3b09 DATAJPA-188 - Updated query keyword reference.
Included general keyword reference from Spring Data Commons. Updated keyword samples of supported ones.
2012-04-10 19:34:40 +02:00
Oliver Gierke
0ff84c94e8 DATAJPA-188 - Added support for After and Before query creation. 2012-04-10 18:24:20 +02:00
Oliver Gierke
3604ee45f3 Removed versions from XSD references from test config files. 2012-04-10 17:58:31 +02:00
Oliver Gierke
5b2cef4938 DATAJPA-169 - Fixed regression in SimpleJpaQuery.
When using a projection to a collection property in a manually defined query we must not set the domain class type when creating the query:

interface UserRepository implements Repository<User, Long> {

  @Query("select u.colleagues from User u where u = ?1")
  List<User> findColleguesFor(User user);
}

We now must not call em.createQuery(queryString, User.class) as we were before as this causes some persistence providers (tested with Hibernate) to reject the query type. Thus we now simply create an untyped query as we don't need the typing here. Unfortunately we cannot activate the test case currently as OpenJPA does not support using projections on a collection property and breaks the bootstrap process of the integration test.
2012-03-12 19:18:12 +01:00
Oliver Gierke
4e6a93390f DATAJPA-151, DATAJPA-167 - Upgrade to Spring 3.1.1.
Needed to get rid of SPR-8954. Updated build to run against Spring 3.1.1.
2012-02-27 14:39:12 +01:00
Oliver Gierke
8b78d0ff60 DATAJPA-164 - Link latest core repository reference documentation. 2012-02-08 23:09:55 +01:00
Oliver Gierke
3f1043a0fd DATAJPA-164 - Prepare 1.1.0.RC1. 2012-02-08 19:02:36 +01:00
Oliver Gierke
0c4868dc17 DATAJPA-163 - Updated changelog for 1.0.3. 2012-02-03 12:18:44 +01:00
Oliver Gierke
f676e92e6a DATACMNS-128 - Implement CrudRepository.findAll(Iterable<ID> ids).
Implemented said method in SimpleJpaRepository and added test case. Comment that one out for failing persistence providers.

https://bugs.eclipse.org/bugs/show_bug.cgi?id=349477
https://issues.apache.org/jira/browse/OPENJPA-2018
2012-02-02 18:13:47 +01:00
Oliver Gierke
19cca03953 DATAJPA-137 - Fixed deleteAll() handling.
SimpleJpaRepository now deletes entities 1 by 1 for a call to deleteAll() to ensure the cascades get triggered. Introduced deleteAllInBatch() that contains the old behaviour.
2012-02-02 15:38:37 +01:00
Oliver Gierke
5c95016717 DATAJPA-121 - Corrected query handling if null parameters are provided.
If a query is executed and null values are provided we now recreate a query with an IS NULL predicate correctly.
2012-02-02 14:49:01 +01:00
Oliver Gierke
9ae8caa1b8 DATAJPA-9 - Added DateTimeProvider SPI for auditing.
Extracted the DateTime instance calculation to be used for auditing into a DateTimeProvider callback interface to open it up for customization. AuditingEntityListener can get an instance of it configured. Exposed the property via the auditing namespace. By default a CurrentDateTimeProvider its used that contains the behavior we had so far.
2012-02-01 18:41:48 +01:00
Oliver Gierke
3962f1ab31 DATAJPA-50 - Introduced support for usage of @IdClass.
Introduced to support @IdClass to define entity ids. The JpeMetamodelEntityInformation builds instances of the annotated @IdClass in case any of the attributes of the entity declared in the @IdClass has a non-null value.
2012-01-31 17:18:09 +01:00
Oliver Gierke
0795827f8b DATAJPA-160 - Removed versions from XSD schema references.
The fixed versions caused issues when used with newer versions of Spring. Removing the version number will cause the one used at runtime to be pulled in.
2012-01-31 17:02:29 +01:00
Oliver Gierke
0cb082cbe7 DATAJPA-159 - Improved error message if building a PartTreeJpaQuery fails. 2012-01-31 13:34:27 +01:00
Oliver Gierke
b303498842 DATAJPA-69 - Sample of how to configure repositories with JavaConfig. 2012-01-31 13:29:32 +01:00
Oliver Gierke
1a14e92e69 DATAJPA-142 - Allow using a NamedQuery for count queries in pagination.
We will now prefer a declared NamedQuery for count queries instead of deriving it from the actual NamedQuery under the following conditions:

- by default a query named ${namedQueryName}.count exists
- the name of the NamedQuery to be used is defined in @Query(countQueryName = "…")

Note that a potential reconfiguration of the NamedQuery name will be taken into account for the according count query name to assure symmetry. Examples

Page<User> findByLastname(String lastname, Pageable pageable)
NamedQuery name: User.findByLastname
Count NamedQuery name: User.findByLastname.count

@Query(name = "Foo.bar")
Page<User> findByLastname(String lastname, Pageable pageable)
NamedQuery name: Foo.bar
Count NamedQuery name: Foo.bar.count

@Query(countName = "Foo.bar.count")
Page<User> findByLastname(String lastname, Pageable pageable)
NamedQuery name: User.findByLastname
Count NamedQuery name: Foo.bar.count

@Query(name = "Foo.bar", countName = "something")
Page<User> findByLastname(String lastname, Pageable pageable)
NamedQuery name: Foo.bar
Count NamedQuery name: something
2012-01-11 15:12:33 +01:00
Oliver Gierke
9224a4b14f DATAJPA-138 - Make MergingPesistenceUnitManager work again.
Override isPersistenceUnitOverrideAllowed() newly introduced in Spring 3.1.1 to indicate we can deal with persistence units of the same name. For Spring 3.0.x versions the implementation was not broken.
2012-01-11 14:16:02 +01:00
Dirk Mahler
c4ae2ba7bb DATAJPA-136 - Initial draft of CDI integration.
Implemented CDI integration based on the Spring Data Commons code introduced in DATACMNS-110.
2011-12-19 16:44:56 +01:00
Oliver Gierke
ea8fff00fc DATAJPA-141 - JpaMetamodelEntityInformation now works with MappedSuperclasses as well.
We now call Metamodel.managedClass(…) instead of Metamodel.entityType(…) to be able to detect ids in @MappedSuperclass types as well. Unfortunately this currently still fails with Hibernate as theit Metamodel implementation only considers entities. See [0] for further details.

[0] https://hibernate.onjira.com/browse/HHH-6896
2011-12-15 11:30:13 +01:00
Oliver Gierke
fe36a77f38 DATAJPA-135 - Improved extensibility of QueryDslRepositorySupport.
Moved @PersistenceContext annotation to the setter method to make it overridable and thus re-configurable. Introduced protected getEntityManager() method to allow subclasses having access to the EntityManager.
2011-12-09 13:02:20 +01:00
Oliver Gierke
bb124e1e58 DATAJPA-133 - Updated changelog. 2011-12-06 22:51:53 +01:00
Oliver Gierke
0aa6aaca2a DATAJPA-73 - Added id to locking section of reference documentation. 2011-12-06 18:59:11 +01:00
Oliver Gierke
c915077074 DATAJPA-73 - Added support for locking.
Repository query methods can now be equipped with a @Lock annotation that carries the LockModeType to be used when executing the query. Beyond that, CRUD methods can be redeclared to carry lock metadata as well.

interface UserRepository extends Repository<User, Long> {
  // CRUD method redeclaration
  @Lock(LockModeType.READ)
  List<User> findAll();

  // Query method
  @Lock(LockModeType.READ)
  List<User> findByLastname(String lastname);
}
2011-12-06 11:12:57 +01:00
Tomasz Nurkiewicz
d49d4d5f0a DATAJPA-124 - Optimized pagination execution.
For pagination we already need to trigger a count query to find out the total number of pages available. Now if there are less elements available than the offset of the current page points to we don't need to trigger the actual content reading query at all. E.g. if there's only 20 elements in the database and we request page 3 by a page size of 10 we already know that there won't be any elements found.

Implemented that optimization for general CRUD pagination as well as pagination in query methods.
2011-12-05 18:24:29 +01:00
Oliver Gierke
e3da457137 DATAJPA-123, DATAJPA-122 - Updated reference documentation.
Added documentation of ClasspathScanningPersistenceUnitPostProcessor to reference documentation.
2011-12-05 17:24:46 +01:00
Oliver Gierke
42b60cf8d4 DATAJPA-132 - Implemented handling of True and False keywords on query creation.
Query derivation mechanism now supports True and False as keywords in finder methods:

class User {
  boolean active;
}

interface UserRepository<User, Long> {
  List<User> findByActiveTrue() ;
}
2011-12-05 14:38:39 +01:00
Oliver Gierke
d3bced0f86 DATAJPA-123 - Added classpath-scanning PersistenceUnitPostProcessor.
Added ClasspathScanningPersistenceUnitPostProcessor that will scan the configured base package for classes annotated with @Entity or @MappedSuperclass and add them to the PersistenceUnit handled.

Beyond that it will scan for JPA XML mapping files if an optional mapping file name pattern is configured on the PUPP instance.
2011-12-03 11:55:57 +01:00
Oliver Gierke
aef195eaed DATAJPA-129 - Allow definition of NamedQuery name to be used in @Query.
@Query now has a name attribute that allows defining the NamedQuery name to be used to override the convention based ${domainClass}.${finderMethodName}.
2011-12-03 01:30:53 +01:00
Oliver Gierke
c134e10727 DATAJPA-117 - Added nativeQuery flag to @Query.
@Query can now be used to execute native queries by setting the nativeQuery flag of the annotation to true. Polished JavaDoc of the @Query annotation. Upgraded EclipseLink dependency to 2.3.1 as we stumble over a NullPointerException otherwise which is fixed in the current one.
2011-12-03 00:34:23 +01:00
Oliver Gierke
7d6216285e DATAJPA-120 - Replaced @OneToOne with @ManyToOne in AbstractAuditable. 2011-12-02 17:47:07 +01:00
Oliver Gierke
add1336ed1 DATACMNS-91 - Enforce parameter handling defined by CrudRepository.
Reject null values for id and entity values. Polished JavaDoc in terms of parameter specification.
2011-12-02 17:47:07 +01:00
Oliver Gierke
45bcdb60ac DATAJPA-127 - Setup hybrid Spring 3.0.6 / 3.1 build.
Removed deprecated usage of XmlBeanFactory in tests.
2011-12-02 17:46:40 +01:00
Oliver Gierke
70b42b8ba3 Removed unused import. 2011-11-23 12:35:26 +01:00
Oliver Gierke
99e04dbcae DATACMNS-98 - Adapt refactorings. 2011-11-23 12:27:26 +01:00
Oliver Gierke
eaaad64774 Added missing quote in reference documentation. 2011-11-08 13:28:04 +01:00
Oliver Gierke
d6c4c2ef12 Polished UserRepositoryTests. 2011-10-12 11:36:48 +02:00
Oliver Gierke
db8aebe4d7 DATAJPA-111 - Removed unnecessary em.clear() from mass delete methods. 2011-10-12 11:36:33 +02:00
Oliver Gierke
c8a0f0d3b6 DATAJPA-110 - Fixed alias detection for entity names containing numbers. 2011-10-11 18:23:21 +02:00
Oliver Gierke
54f8cb8700 DATAJPA-108 - Added support for GreaterThanEqual and LessThanEqual. 2011-10-11 18:15:25 +02:00
Oliver Gierke
515a85f005 DATAJPA-113 - Improved DI for QueryDslRepositorySupport.
Removed @Required annotation from the setter for EntityManager property. The annotation triggered a dependency check that was not aware of the EntityManager being injected by a PersistenceAnnotationBeanPostProcessor. As we already have a validation callback using @PostConstruct we can simply rely on the not-null check for the EntityManager being implemented there.
2011-10-11 12:57:05 +02:00
Oliver Gierke
7a3b20992d DATACMNS-84 - Adapt refactorings. 2011-10-07 12:18:48 +02:00
Oliver Gierke
63e564aee3 DATACMNS-82 - Adapted changes in Spring Data Commons. 2011-09-30 12:12:32 +02:00
Oliver Gierke
a5cb8ee6c0 DATAJPA-54 - Added forCounting() flag to @QueryHints.
The flag defaults to true and allows disabling of QueryHints being applied to the count query additionally triggered for pagination.
2011-09-06 13:47:38 +02:00