DATACMNS-1235 - Support for package suffix in SimpleEntityPathResolver.
SimpleEntityPathResolver is now a normal class and takes a package suffix in the constructor. Original pull request: #265.
This commit is contained in:
committed by
Oliver Gierke
parent
e30928dcf0
commit
9ae4216650
@@ -29,14 +29,21 @@ import com.querydsl.core.types.EntityPath;
|
||||
* of the same type.
|
||||
*
|
||||
* @author Oliver Gierke
|
||||
* @author Jens Schauder
|
||||
*/
|
||||
public enum SimpleEntityPathResolver implements EntityPathResolver {
|
||||
|
||||
INSTANCE;
|
||||
public class SimpleEntityPathResolver implements EntityPathResolver {
|
||||
|
||||
private static final String NO_CLASS_FOUND_TEMPLATE = "Did not find a query class %s for domain class %s!";
|
||||
private static final String NO_FIELD_FOUND_TEMPLATE = "Did not find a static field of the same type in %s!";
|
||||
|
||||
public static final SimpleEntityPathResolver INSTANCE = new SimpleEntityPathResolver("");
|
||||
|
||||
private final String querySuffix;
|
||||
|
||||
public SimpleEntityPathResolver(String querySuffix) {
|
||||
this.querySuffix = querySuffix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an {@link EntityPath} instance for the given domain class. Tries to lookup a class matching the naming
|
||||
* convention (prepend Q to the simple name of the class, same package) and find a static field of the same type in
|
||||
@@ -95,7 +102,7 @@ public enum SimpleEntityPathResolver implements EntityPathResolver {
|
||||
private String getQueryClassName(Class<?> domainClass) {
|
||||
|
||||
String simpleClassName = ClassUtils.getShortName(domainClass);
|
||||
return String.format("%s.Q%s%s", domainClass.getPackage().getName(), getClassBase(simpleClassName),
|
||||
return String.format("%s%s.Q%s%s", domainClass.getPackage().getName(), querySuffix, getClassBase(simpleClassName),
|
||||
domainClass.getSimpleName());
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import com.querydsl.core.annotations.QueryEntity;
|
||||
* Unit test for {@link SimpleEntityPathResolver}.
|
||||
*
|
||||
* @author Oliver Gierke
|
||||
* @author Jens Schauder
|
||||
*/
|
||||
public class SimpleEntityPathResolverUnitTests {
|
||||
|
||||
@@ -45,6 +46,12 @@ public class SimpleEntityPathResolverUnitTests {
|
||||
resolver.createPath(QSimpleEntityPathResolverUnitTests_Sample.class);
|
||||
}
|
||||
|
||||
@Test // DATACMNS-1235
|
||||
public void handlesPackageSuffixCorrectly() {
|
||||
assertThat(new SimpleEntityPathResolver(".suffix").createPath(User.class))
|
||||
.isInstanceOf(org.springframework.data.querydsl.suffix.QUser.class);
|
||||
}
|
||||
|
||||
@QueryEntity
|
||||
static class Sample {
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
* Copyright 2017 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.data.querydsl.suffix;
|
||||
|
||||
import org.springframework.data.querydsl.User;
|
||||
|
||||
import com.querydsl.core.types.dsl.EntityPathBase;
|
||||
|
||||
/**
|
||||
* Mimicks a class generated by Querydsl with a package suffix.
|
||||
*
|
||||
* @see org.springframework.data.querydsl.SimpleEntityPathResolverUnitTests
|
||||
* @author Jens Schauder
|
||||
*/
|
||||
public class QUser extends EntityPathBase<User> {
|
||||
public static final QUser user = new QUser("user");
|
||||
|
||||
public QUser(String user) {
|
||||
super(User.class, user);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user