-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Closed as not planned
Labels
status: declinedA suggestion or change that we don't feel we should currently applyA suggestion or change that we don't feel we should currently apply
Description
Now to override JpaRepositoryFactoryBean
and JpaRepositoryFactory
and keeping default behivior we must also override setters of fields as they are private and there are no public/protected getters .
e.g
public class CpJpaRepositoryFactoryBean<T extends Repository<S, ID>, S, ID>
extends JpaRepositoryFactoryBean<T, S, ID> {
private EntityPathResolver entityPathResolver;
private EscapeCharacter escapeCharacter = EscapeCharacter.DEFAULT;
private JpaQueryMethodFactory queryMethodFactory;
public CpJpaRepositoryFactoryBean(Class<? extends T> repositoryInterface) {
super(repositoryInterface);
}
@Override
protected RepositoryFactorySupport createRepositoryFactory(EntityManager entityManager) {
JpaRepositoryFactory jpaRepositoryFactory = new CustomJpaRepositoryFactory(entityManager);
jpaRepositoryFactory.setEntityPathResolver(entityPathResolver);
jpaRepositoryFactory.setEscapeCharacter(escapeCharacter);
if (queryMethodFactory != null) {
jpaRepositoryFactory.setQueryMethodFactory(queryMethodFactory);
}
return jpaRepositoryFactory;
}
@Autowired
@Override
public void setEntityPathResolver(ObjectProvider<EntityPathResolver> resolver) {
super.setEntityPathResolver(resolver);
this.entityPathResolver = resolver.getIfAvailable(() -> SimpleEntityPathResolver.INSTANCE);
}
@Override
public void setEscapeCharacter(char escapeCharacter) {
super.setEscapeCharacter(escapeCharacter);
this.escapeCharacter = EscapeCharacter.of(escapeCharacter);
}
@Autowired
@Override
public void setQueryMethodFactory(@Nullable JpaQueryMethodFactory factory) {
super.setQueryMethodFactory(factory);
if (factory != null) {
this.queryMethodFactory = factory;
}
}
}
Same is actual for JpaRepositoryFactory
and QuerydslJpaPredicateExecutor
.
Need to provide getters or make the properties protected
Metadata
Metadata
Assignees
Labels
status: declinedA suggestion or change that we don't feel we should currently applyA suggestion or change that we don't feel we should currently apply