मैंने वसंत बूट 1.3.1 पर स्प्रिंग डेटा लोचदार खोज के साथ काम करना शुरू किया और मैं उसी डेटाबेस का उपयोग करना चाहता हूं जो मेरे डेटाबेस में उपयोग करता है, और इसमें कंपाउंड कुंजी है।यह संभव है कि परिसर कुंजी के साथ वसंत-डेटा-लोचदार खोज @ दस्तावेज़ बनाएं?
इकाई वर्ग:
@IdClass(PassengerPk.class)
@Table(name = "passenger")
@Document(indexName="passenger")
public class Passenger implements Serializable {
@Id
@ManyToOne
@JoinColumn(columnDefinition="long", name="user_id", referencedColumnName="id")
private User user;
@Id
@ManyToOne
@JoinColumn(columnDefinition="long", name="scheduler_id", referencedColumnName="id")
private Scheduler scheduler;
@Column(name = "is_active")
private Boolean isActive;
...
}
कुंजी वर्ग:
public class PassengerPk implements Serializable {
private Long user;
private Long scheduler;
public PassengerPk() {
}
public PassengerPk(Long user, Long scheduler) {
this.user = user;
this.scheduler = scheduler;
}
...
}
जेपीए Elasticsearch भंडार:
public interface PassengerSearchRepository extends ElasticsearchRepository<Passenger, PassengerPk> {
}
डेटाबेस: database relationships
अगर मैं इस कोड को संकलित करने का प्रयास करता हूं, तो मुझे यह त्रुटि मिलती है।
Caused by: java.lang.IllegalArgumentException: Unsuppored ID type class com.dualion.test.domain.PassengerPk
at org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactory.getRepositoryBaseClass(ElasticsearchRepositoryFactory.java:79) ~[spring-data-elasticsearch-1.3.1.RELEASE.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepositoryInformation(RepositoryFactorySupport.java:238) ~[spring-data-commons-1.11.1.RELEASE.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:181) ~[spring-data-commons-1.11.1.RELEASE.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:251) ~[spring-data-commons-1.11.1.RELEASE.jar:na]
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:237) ~[spring-data-commons-1.11.1.RELEASE.jar:na]
at org.springframework.data.elasticsearch.repository.support.ElasticsearchRepositoryFactoryBean.afterPropertiesSet(ElasticsearchRepositoryFactoryBean.java:55) ~[spring-data-elasticsearch-1.3.1.RELEASE.jar:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) ~[spring-beans-4.2.3.RELEASE.jar:4.2.3.RELEASE]
... 71 common frames omitted
मैं अपना कोड कैसे संशोधित कर सकता हूं?
धन्यवाद
कोई भी मुझे समाधान दे सकता है? – kn4ls
आप '@ IdClass' निर्भरता का उत्तराधिकारी कैसे प्राप्त करते हैं?मुझे लगता है कि यह कुछ जेपीए निर्भरता द्वारा लाया गया एक वर्ग है, जेपीए के साथ ईएस कॉन्फ़िगर करने के लिए इतना छोटा नहीं है, मुझे नहीं पता कि कैसे। तो निश्चित रूप से आप इसे ES के लिए उपयोग नहीं कर सकते हैं। मेरे लक्ष्य को प्राप्त करने के तरीके के बारे में जानने के लिए मेरे लिए बहुत उपयोगी होगा। – andPat
अंत में हाइबरनेट खोज का उपयोग करें और ईएस नहीं, बीकॉज़ कार्यान्वयन यह अधिक आसान है। – kn4ls