Skip to content

Commit 64771e9

Browse files
committed
close #133
1 parent 6e2f4cd commit 64771e9

File tree

5 files changed

+72
-95
lines changed

5 files changed

+72
-95
lines changed

src/main/java/org/springframework/data/mybatis/repository/config/MybatisAnnotationRepositoryConfigurationSource.java

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,34 +18,40 @@
1818

1919
package org.springframework.data.mybatis.repository.config;
2020

21+
import java.lang.annotation.Annotation;
22+
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
2123
import org.springframework.core.annotation.AnnotationAttributes;
2224
import org.springframework.core.env.Environment;
2325
import org.springframework.core.io.ResourceLoader;
2426
import org.springframework.core.type.AnnotationMetadata;
2527
import org.springframework.data.repository.config.AnnotationRepositoryConfigurationSource;
2628

27-
import java.lang.annotation.Annotation;
28-
2929
/**
3030
* @author Jarvis Song
3131
*/
32-
public class MybatisAnnotationRepositoryConfigurationSource extends AnnotationRepositoryConfigurationSource {
33-
/**
34-
* Creates a new {@link AnnotationRepositoryConfigurationSource} from the given {@link AnnotationMetadata} and
35-
* annotation.
36-
*
37-
* @param metadata
38-
* @param annotation must not be {@literal null}.
39-
* @param resourceLoader must not be {@literal null}.
40-
* @param environment
41-
*/
42-
public MybatisAnnotationRepositoryConfigurationSource(AnnotationMetadata metadata, Class<? extends Annotation> annotation, ResourceLoader resourceLoader, Environment environment) {
43-
super(metadata, annotation, resourceLoader, environment);
44-
}
32+
public class MybatisAnnotationRepositoryConfigurationSource extends
33+
AnnotationRepositoryConfigurationSource {
34+
35+
36+
/**
37+
* Creates a new {@link AnnotationRepositoryConfigurationSource} from the given {@link
38+
* AnnotationMetadata} and annotation.
39+
*
40+
* @param metadata must not be {@literal null}.
41+
* @param annotation must not be {@literal null}.
42+
* @param resourceLoader must not be {@literal null}.
43+
*/
44+
public MybatisAnnotationRepositoryConfigurationSource(
45+
AnnotationMetadata metadata,
46+
Class<? extends Annotation> annotation,
47+
ResourceLoader resourceLoader, Environment environment,
48+
BeanDefinitionRegistry registry) {
49+
super(metadata, annotation, resourceLoader, environment, registry);
50+
}
4551

46-
public String[] getMapperLocations() {
47-
AnnotationAttributes attributes = getAttributes();
48-
return attributes.getStringArray("mapperLocations");
49-
}
52+
public String[] getMapperLocations() {
53+
AnnotationAttributes attributes = getAttributes();
54+
return attributes.getStringArray("mapperLocations");
55+
}
5056

5157
}

src/main/java/org/springframework/data/mybatis/repository/config/MybatisRepositoriesRegistrar.java

Lines changed: 46 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -18,69 +18,74 @@
1818

1919
package org.springframework.data.mybatis.repository.config;
2020

21+
import java.lang.annotation.Annotation;
2122
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
2223
import org.springframework.context.EnvironmentAware;
2324
import org.springframework.context.ResourceLoaderAware;
2425
import org.springframework.core.env.Environment;
2526
import org.springframework.core.io.ResourceLoader;
2627
import org.springframework.core.type.AnnotationMetadata;
27-
import org.springframework.data.repository.config.*;
28+
import org.springframework.data.repository.config.RepositoryBeanDefinitionRegistrarSupport;
29+
import org.springframework.data.repository.config.RepositoryConfigurationDelegate;
30+
import org.springframework.data.repository.config.RepositoryConfigurationExtension;
31+
import org.springframework.data.repository.config.RepositoryConfigurationUtils;
2832
import org.springframework.util.Assert;
2933

30-
import java.lang.annotation.Annotation;
31-
3234
/**
3335
* Mybatis repositories register for spring data.
3436
*
3537
* @author Jarvis Song
3638
*/
37-
class MybatisRepositoriesRegistrar extends RepositoryBeanDefinitionRegistrarSupport implements ResourceLoaderAware, EnvironmentAware {
39+
class MybatisRepositoriesRegistrar extends RepositoryBeanDefinitionRegistrarSupport implements
40+
ResourceLoaderAware, EnvironmentAware {
3841

39-
private ResourceLoader resourceLoader;
40-
private Environment environment;
42+
private ResourceLoader resourceLoader;
43+
private Environment environment;
4144

42-
@Override
43-
protected Class<? extends Annotation> getAnnotation() {
44-
return EnableMybatisRepositories.class;
45-
}
45+
@Override
46+
protected Class<? extends Annotation> getAnnotation() {
47+
return EnableMybatisRepositories.class;
48+
}
4649

47-
@Override
48-
protected RepositoryConfigurationExtension getExtension() {
49-
return new MybatisRepositoryConfigExtension(resourceLoader);
50-
}
50+
@Override
51+
protected RepositoryConfigurationExtension getExtension() {
52+
return new MybatisRepositoryConfigExtension(resourceLoader);
53+
}
5154

52-
@Override
53-
public void setResourceLoader(ResourceLoader resourceLoader) {
54-
super.setResourceLoader(resourceLoader);
55-
this.resourceLoader = resourceLoader;
56-
}
55+
@Override
56+
public void setResourceLoader(ResourceLoader resourceLoader) {
57+
super.setResourceLoader(resourceLoader);
58+
this.resourceLoader = resourceLoader;
59+
}
5760

58-
@Override
59-
public void setEnvironment(Environment environment) {
60-
this.environment = environment;
61-
super.setEnvironment(environment);
62-
}
61+
@Override
62+
public void setEnvironment(Environment environment) {
63+
this.environment = environment;
64+
super.setEnvironment(environment);
65+
}
6366

64-
@Override
65-
public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry registry) {
66-
Assert.notNull(resourceLoader, "ResourceLoader must not be null!");
67-
Assert.notNull(annotationMetadata, "AnnotationMetadata must not be null!");
68-
Assert.notNull(registry, "BeanDefinitionRegistry must not be null!");
67+
@Override
68+
public void registerBeanDefinitions(AnnotationMetadata annotationMetadata,
69+
BeanDefinitionRegistry registry) {
70+
Assert.notNull(resourceLoader, "ResourceLoader must not be null!");
71+
Assert.notNull(annotationMetadata, "AnnotationMetadata must not be null!");
72+
Assert.notNull(registry, "BeanDefinitionRegistry must not be null!");
6973

70-
// Guard against calls for sub-classes
71-
if (annotationMetadata.getAnnotationAttributes(getAnnotation().getName()) == null) {
72-
return;
73-
}
74+
// Guard against calls for sub-classes
75+
if (annotationMetadata.getAnnotationAttributes(getAnnotation().getName()) == null) {
76+
return;
77+
}
7478

75-
MybatisAnnotationRepositoryConfigurationSource configurationSource = new MybatisAnnotationRepositoryConfigurationSource(
76-
annotationMetadata, getAnnotation(), resourceLoader, environment);
79+
MybatisAnnotationRepositoryConfigurationSource configurationSource = new MybatisAnnotationRepositoryConfigurationSource(
80+
annotationMetadata, getAnnotation(), resourceLoader, environment, registry);
7781

78-
RepositoryConfigurationExtension extension = getExtension();
79-
RepositoryConfigurationUtils.exposeRegistration(extension, registry, configurationSource);
82+
RepositoryConfigurationExtension extension = getExtension();
83+
RepositoryConfigurationUtils.exposeRegistration(extension, registry, configurationSource);
8084

81-
RepositoryConfigurationDelegate delegate = new RepositoryConfigurationDelegate(configurationSource, resourceLoader,
82-
environment);
85+
RepositoryConfigurationDelegate delegate = new RepositoryConfigurationDelegate(
86+
configurationSource, resourceLoader,
87+
environment);
8388

84-
delegate.registerRepositoriesIn(registry, extension);
85-
}
89+
delegate.registerRepositoriesIn(registry, extension);
90+
}
8691
}

src/main/java/org/springframework/data/mybatis/repository/support/MybatisEntityInformation.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package org.springframework.data.mybatis.repository.support;
2020

2121
import java.io.Serializable;
22-
import org.springframework.data.mybatis.annotations.Id.GenerationType;
2322
import org.springframework.data.mybatis.repository.query.MybatisEntityMetadata;
2423
import org.springframework.data.repository.core.EntityInformation;
2524

@@ -37,9 +36,7 @@ public interface MybatisEntityInformation<T, ID extends Serializable>
3736
void setVersion(T entity, int version);
3837

3938
boolean hasVersion();
40-
41-
GenerationType getIdGenerationType();
42-
39+
4340
void setIdValue(T entity, ID id);
4441

4542
void setCreatedDate(T entity);

src/main/java/org/springframework/data/mybatis/repository/support/MybatisMetamodelEntityInformation.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,6 @@
3030
import org.springframework.data.mapping.PersistentEntity;
3131
import org.springframework.data.mapping.PersistentProperty;
3232
import org.springframework.data.mapping.PersistentPropertyAccessor;
33-
import org.springframework.data.mybatis.annotations.Id;
34-
import org.springframework.data.mybatis.annotations.Id.GenerationType;
3533
import org.springframework.data.mybatis.domains.AuditDateAware;
3634
import org.springframework.data.repository.core.support.AbstractEntityInformation;
3735

@@ -92,21 +90,6 @@ public boolean hasVersion() {
9290
return persistentEntity.hasVersionProperty();
9391
}
9492

95-
@Override
96-
public GenerationType getIdGenerationType() {
97-
PersistentProperty<?> idProperty = persistentEntity.getIdProperty();
98-
if (null == idProperty) {
99-
return null;
100-
}
101-
Id id = idProperty.findAnnotation(Id.class);
102-
if (null == id) {
103-
return null;
104-
}
105-
106-
return id.strategy();
107-
108-
}
109-
11093
@Override
11194
public void setIdValue(T entity, ID id) {
11295
IdentifierAccessor identifierAccessor = persistentEntity.getIdentifierAccessor(entity);

src/main/java/org/springframework/data/mybatis/repository/support/SimpleMybatisRepository.java

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,6 @@
1818

1919
package org.springframework.data.mybatis.repository.support;
2020

21-
import static org.springframework.data.mybatis.annotations.Id.GenerationType.DISTRIBUTED;
22-
import static org.springframework.data.mybatis.annotations.Id.GenerationType.UUID;
23-
2421
import java.io.Serializable;
2522
import java.util.Collections;
2623
import java.util.HashMap;
@@ -33,7 +30,6 @@
3330
import org.springframework.data.domain.PageImpl;
3431
import org.springframework.data.domain.Pageable;
3532
import org.springframework.data.domain.Sort;
36-
import org.springframework.data.mybatis.annotations.Id.GenerationType;
3733
import org.springframework.data.mybatis.repository.util.IdWorker;
3834
import org.springframework.stereotype.Repository;
3935
import org.springframework.transaction.annotation.Transactional;
@@ -82,16 +78,6 @@ public <S extends T> S insert(S entity) {
8278
if (entityInformation.hasVersion()) {
8379
entityInformation.setVersion(entity, 0);
8480
}
85-
GenerationType idGenerationType = entityInformation.getIdGenerationType();
86-
if (idGenerationType == UUID) {
87-
entityInformation.setIdValue(entity, (ID) java.util.UUID.randomUUID().toString());
88-
} else if (idGenerationType == DISTRIBUTED) {
89-
if (entityInformation.getIdType() == Long.class) {
90-
entityInformation.setIdValue(entity, (ID) Long.valueOf(idWorker.getId()));
91-
} else if (entityInformation.getIdType() == String.class) {
92-
entityInformation.setIdValue(entity, (ID) idWorker.getIdAsString());
93-
}
94-
}
9581

9682
insert(STATEMENT_INSERT, entity);
9783
return entity;

0 commit comments

Comments
 (0)