-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Open
Labels
status: ideal-for-contributionAn issue that a contributor can help us withAn issue that a contributor can help us withtype: enhancementA general enhancementA general enhancement
Description
I defined two entity associate with Any annotation. now I want to find one entity with other entity by Jpa respository.
but it throw
java.lang.IllegalArgumentException: Unable to locate Attribute with the the given name [monitorObject] on this ManagedType [cn.sm.data.hanoispring.domain.ScIndicator]
how can i do?
thanks
ScIndicator.class
@Entity
public class ScIndicator{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Any(metaColumn = @Column(name = "objectType"), metaDef = "MonitorIndicatorDef", fetch = FetchType.LAZY)
@JoinColumn(name = "objectName")
@JsonIgnore
private MonitorObject monitorObject;
@Enumerated(EnumType.STRING)
private TimeType timeType;
@Temporal(TemporalType.TIMESTAMP)
private Date time;
private Long pv;
private Long uvUtdid;
private Long uvUid;
private Double coverRatio;
private Double avgShowPos;
private Long pvPreMin;
private Long uvUtdidPreMin;
private Long uvUidPreMin;
private Double coverRatioPreMin;
private Double avgShowPosPreMin;
private Long pvPreMax;
private Long uvUtdidPreMax;
private Long uvUidPreMax;
private Double coverRatioPreMax;
private Double avgShowPosPreMax;
//setter() and getter()
....
}
MonitorObject.class
@MappedSuperclass
public abstract class MonitorObject{
@Id
@NaturalId
protected String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ScIndicatorRepository.class
@Repository
public interface ScIndicatorRepository extends JpaRepository<ScIndicator, Long> {
List<ScIndicator> findByMonitorObject(MonitorObject monitorObject);
}
error log
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'scMonitorController': Unsatisfied dependency expressed through field 'scIndicatorRepository'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scIndicatorRepository' defined in cn.sm.data.hanoispring.repository.ScIndicatorRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Reason: Failed to create query for method public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Unable to locate Attribute with the the given name [monitorObject] on this ManagedType [cn.sm.data.hanoispring.domain.ScIndicator]; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Unable to locate Attribute with the the given name [monitorObject] on this ManagedType [cn.sm.data.hanoispring.domain.ScIndicator]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) ~[spring-context-5.3.10.jar:5.3.10]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.10.jar:5.3.10]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.0-SNAPSHOT.jar:2.6.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:719) [spring-boot-2.6.0-SNAPSHOT.jar:2.6.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:401) [spring-boot-2.6.0-SNAPSHOT.jar:2.6.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) [spring-boot-2.6.0-SNAPSHOT.jar:2.6.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1290) [spring-boot-2.6.0-SNAPSHOT.jar:2.6.0-SNAPSHOT]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1279) [spring-boot-2.6.0-SNAPSHOT.jar:2.6.0-SNAPSHOT]
at cn.sm.data.hanoispring.HanoiSpringApplication.main(HanoiSpringApplication.java:10) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_291]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_291]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_291]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_291]
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49) [spring-boot-devtools-2.6.0-SNAPSHOT.jar:2.6.0-SNAPSHOT]
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scIndicatorRepository' defined in cn.sm.data.hanoispring.repository.ScIndicatorRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Reason: Failed to create query for method public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Unable to locate Attribute with the the given name [monitorObject] on this ManagedType [cn.sm.data.hanoispring.domain.ScIndicator]; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Unable to locate Attribute with the the given name [monitorObject] on this ManagedType [cn.sm.data.hanoispring.domain.ScIndicator]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1380) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1300) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.3.10.jar:5.3.10]
... 25 common frames omitted
Caused by: org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Reason: Failed to create query for method public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Unable to locate Attribute with the the given name [monitorObject] on this ManagedType [cn.sm.data.hanoispring.domain.ScIndicator]; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Unable to locate Attribute with the the given name [monitorObject] on this ManagedType [cn.sm.data.hanoispring.domain.ScIndicator]
at org.springframework.data.repository.query.QueryCreationException.create(QueryCreationException.java:101) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:106) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$mapMethodsToQuery$1(QueryExecutorMethodInterceptor.java:94) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_291]
at java.util.Iterator.forEachRemaining(Iterator.java:116) ~[na:1.8.0_291]
at java.util.Collections$UnmodifiableCollection$1.forEachRemaining(Collections.java:1051) ~[na:1.8.0_291]
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[na:1.8.0_291]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482) ~[na:1.8.0_291]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472) ~[na:1.8.0_291]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_291]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_291]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_291]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.mapMethodsToQuery(QueryExecutorMethodInterceptor.java:96) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lambda$new$0(QueryExecutorMethodInterceptor.java:86) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at java.util.Optional.map(Optional.java:215) ~[na:1.8.0_291]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.<init>(QueryExecutorMethodInterceptor.java:86) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:360) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.lambda$afterPropertiesSet$5(RepositoryFactoryBeanSupport.java:322) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.util.Lazy.getNullable(Lazy.java:230) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.util.Lazy.get(Lazy.java:114) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:328) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:144) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.10.jar:5.3.10]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.10.jar:5.3.10]
... 35 common frames omitted
Caused by: java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List cn.sm.data.hanoispring.repository.ScIndicatorRepository.findByMonitorObject(cn.sm.data.hanoispring.domain.MonitorObject)! Unable to locate Attribute with the the given name [monitorObject] on this ManagedType [cn.sm.data.hanoispring.domain.ScIndicator]
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:96) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:107) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:218) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:81) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.lookupQuery(QueryExecutorMethodInterceptor.java:102) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
... 57 common frames omitted
Caused by: java.lang.IllegalArgumentException: Unable to locate Attribute with the the given name [monitorObject] on this ManagedType [cn.sm.data.hanoispring.domain.ScIndicator]
at org.hibernate.metamodel.model.domain.internal.AbstractManagedType.checkNotNull(AbstractManagedType.java:148) ~[hibernate-core-5.5.7.Final.jar:5.5.7.Final]
at org.hibernate.metamodel.model.domain.internal.AbstractManagedType.getAttribute(AbstractManagedType.java:119) ~[hibernate-core-5.5.7.Final.jar:5.5.7.Final]
at org.hibernate.metamodel.model.domain.internal.AbstractManagedType.getAttribute(AbstractManagedType.java:44) ~[hibernate-core-5.5.7.Final.jar:5.5.7.Final]
at org.springframework.data.jpa.repository.query.QueryUtils.requiresOuterJoin(QueryUtils.java:697) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.QueryUtils.toExpressionRecursively(QueryUtils.java:638) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.QueryUtils.toExpressionRecursively(QueryUtils.java:617) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.QueryUtils.toExpressionRecursively(QueryUtils.java:613) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.JpaQueryCreator$PredicateBuilder.getTypedPath(JpaQueryCreator.java:385) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.JpaQueryCreator$PredicateBuilder.build(JpaQueryCreator.java:308) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.JpaQueryCreator.toPredicate(JpaQueryCreator.java:211) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.JpaQueryCreator.create(JpaQueryCreator.java:124) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.JpaQueryCreator.create(JpaQueryCreator.java:59) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.query.parser.AbstractQueryCreator.createCriteria(AbstractQueryCreator.java:119) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:95) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.repository.query.parser.AbstractQueryCreator.createQuery(AbstractQueryCreator.java:81) ~[spring-data-commons-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery$QueryPreparer.<init>(PartTreeJpaQuery.java:217) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery$CountQueryPreparer.<init>(PartTreeJpaQuery.java:348) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:91) ~[spring-data-jpa-2.6.0-M3.jar:2.6.0-M3]
... 61 common frames omitted
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 30.096 s
[INFO] Finished at: 2021-09-28T10:54:31+08:00
[INFO] ------------------------------------------------------------------------
murphy1312
Metadata
Metadata
Assignees
Labels
status: ideal-for-contributionAn issue that a contributor can help us withAn issue that a contributor can help us withtype: enhancementA general enhancementA general enhancement