मैं वसंत-डेटा-जेपीए में नया हूं और वर्तमान में हाइबरनेट के साथ कार्यान्वित करने की कोशिश कर रहा हूं। मैंने tutorial का पालन किया है! इसके लिए और वर्तमान में आवेदन शुरू करने के मुद्दों का सामना कर रहा हूं। मैं स्टार्टअप के दौरान निम्न अपवाद प्राप्त करें:वसंत डेटा जेपीए @ एंटीटी संपत्ति को अपवाद नहीं मिला
Caused by: org.springframework.data.mapping.PropertyReferenceException: No property customer found for type com.adaptris.dashboard.customer.Customer
at org.springframework.data.mapping.PropertyPath.<init>(PropertyPath.java:74)
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:326)
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:352)
at org.springframework.data.mapping.PropertyPath.create(PropertyPath.java:306)
at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:270)
at org.springframework.data.mapping.PropertyPath.from(PropertyPath.java:244)
at org.springframework.data.repository.query.parser.Part.<init>(Part.java:73)
at org.springframework.data.repository.query.parser.PartTree$OrPart.<init>(PartTree.java:180)
at org.springframework.data.repository.query.parser.PartTree$Predicate.buildTree(PartTree.java:260)
at org.springframework.data.repository.query.parser.PartTree$Predicate.<init>(PartTree.java:240)
at org.springframework.data.repository.query.parser.PartTree.<init>(PartTree.java:71)
at org.springframework.data.jpa.repository.query.PartTreeJpaQuery.<init>(PartTreeJpaQuery.java:57)
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:90)
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$CreateIfNotFoundQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:162)
at org.springframework.data.jpa.repository.query.JpaQueryLookupStrategy$AbstractQueryLookupStrategy.resolveQuery(JpaQueryLookupStrategy.java:68)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:280)
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:148)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:125)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.getObject(RepositoryFactoryBeanSupport.java:41)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
ग्राहक मेरे डोमेन वर्ग
@Entity(name = "customer")
साथ एनोटेट है और मैं यह DB से कनेक्ट और ग्राहक तालिका जो मैंने लाने के लिए कोशिश कर रहा है लगता है वास्तव में कॉन्फ़िगर किया गया। यहां मेरी वसंत-कॉन्फ़िगरेशन है:
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- Activate Spring Data JPA repository support -->
<jpa:repositories base-package="com.adaptris.dashboard.customer" />
<!-- Declare a datasource that has pooling capabilities -->
<bean id="jpaDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close" p:driverClass="${app.jdbc.driverClassName}"
p:jdbcUrl="${app.jdbc.url}" p:user="${app.jdbc.username}" p:password="${app.jdbc.password}"
p:acquireIncrement="5" p:idleConnectionTestPeriod="60" p:maxPoolSize="100"
p:maxStatements="50" p:minPoolSize="10" />
<!-- Declare a JPA entityManagerFactory -->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:persistenceXmlLocation="classpath*:META-INF/persistence.xml"
p:persistenceUnitName="hibernatePersistenceUnit" p:dataSource-ref="jpaDataSource"
p:jpaVendorAdapter-ref="hibernateVendor" />
<!-- Specify our ORM vendor -->
<bean id="hibernateVendor"
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
p:showSql="false" />
<!-- Declare a transaction manager -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory" />
और डीबी MYSQL है जो चल रहा है। निम्नलिखित गुण हैं:
# database properties
app.jdbc.driverClassName=com.mysql.jdbc.Driver
app.jdbc.url=jdbc\:mysql\://Mallik-PC/adaptrisschema
app.jdbc.username=dbuser
app.jdbc.password=dbpassword
कृपया इस मुद्दे से बाहर निकलने में मेरी सहायता करें !!
आपकी प्रतिक्रिया के लिए धन्यवाद !! एक दिन बिताने के बाद, मैंने यह पता लगाया है और उस विधि को मेरे भंडार से हटा दिया है। लेकिन findOne ( id) विचार अच्छा लगता है। मैं कोशिश करूँगा !! –
user1798932
यह मेरी समस्या भी तय करता है, लेकिन क्या ...? विधि के नाम से क्वेरी परिणाम मैप करना क्यों चाहेंगे ?? इसे डीबी से प्राप्त पैरामीटर से किया जाना चाहिए, क्या आप कृपया आगे विस्तार कर सकते हैं ?? – azerafati
जिस तरह से यह काम करता है वह यह है कि यह _always_ गुणों के नाम 'गेटर/सेटर विधियों का नाम है जो डेटाबेस कॉलम के साथ मेल खाते हैं। आप गुण को एक अलग नाम देकर और मैकिंग मैन्युअल रूप से करने के लिए @ कॉलम ("MyColumnName") एनोटेशन का उपयोग करके इसे संशोधित कर सकते हैं। यदि आप उनमें से कोई भी नहीं करते हैं (न तो नाम मिलान या @ कॉलम) तो ढांचे को पता नहीं है कि आपके ऑब्जेक्ट के विरुद्ध क्वेरी परिणाम कैसे मैप करना है। –