पर उचित निर्माता पता नहीं लग सका मैं अपने POJO के मूल निवासी एसक्यूएल परिणाम मैप करने के लिए कोशिश कर रहा हूँ। विन्यास यहाँ है। मैं वसंत का उपयोग कर रहा हूँ। मैं कैसे यहहो रही त्रुटि वर्ग
Properties coursePropertiesFile = SpringUtil.loadPropertiesFileFromClassPath("course.properties");
String queryString = coursePropertiesFile.getProperty("course.completion.sql");
long distributorId = 1;
String fromDate = "2009-09-22 00:00:00";
String toDate = "2014-04-11 23:59:59";
Query query = em.createNativeQuery(queryString, "courseCompletionMapping");
//Query query = em.createNamedQuery("findAllEmployeeDetails");
query.setParameter("distributorId", distributorId);
query.setParameter("fromDate", fromDate);
query.setParameter("toDate", toDate);
@SuppressWarnings("unchecked")
List<CourseCompletion> courseCompletionList = query.getResultList();
बोल रहा हूँ लेकिन जब यह
List<CourseCompletion> courseCompletionList = query.getResultList();
लाइन की बात आती है मुझे लगता है कि
कोई त्रुटि मिलती है<bean id="ls360Emf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" >
<property name="dataSource" ref="ls360DataSource" />
<property name="jpaVendorAdapter" ref="vendorAdaptor" />
<property name="packagesToScan" value="abc.xyz"/>
<property name="jpaProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</prop>
<prop key="hibernate.max_fetch_depth">3</prop>
<prop key="hibernate.jdbc.fetch_size">50</prop>
<prop key="hibernate.jdbc.batch_size">10</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
यहाँ
@SqlResultSetMapping(
name="courseCompletionMapping",
classes = {
@ConstructorResult(targetClass = CourseCompletion.class,
columns={
@ColumnResult(name = "StoreId", type = String.class),
@ColumnResult(name = "ProductId", type = String.class),
@ColumnResult(name = "UserName", type = String.class),
@ColumnResult(name = "Score", type = Integer.class),
@ColumnResult(name = "CompletionDate", type = Date.class)
}
)
}
)
@Entity
public class CourseCompletion {
private String storeId;
@Id
private String productId;
private String userName;
private int score;
private Date completionDate;
public CourseCompletion() {
}
public CourseCompletion(String storeId, String productId, String userName, int score, Date completionDate) {
this.storeId = storeId;
this.productId = productId;
this.userName = userName;
this.score = score;
this.completionDate = completionDate;
}
// getters and setters
यहाँ मेरी कक्षा है
Could not locate appropriate constructor on class : mypackage.CourseCompletion
क्वेरी कि मैं
select d.DISTRIBUTORCODE AS StoreId, u.USERGUID AS ProductId, u.UserName,
lcs.HIGHESTPOSTTESTSCORE AS Score, lcs.CompletionDate
from VU360User u
inner join learner l on u.ID = l.VU360USER_ID
inner join LEARNERENROLLMENT le on le.LEARNER_ID = l.ID
inner join LEARNERCOURSESTATISTICS lcs on lcs.LEARNERENROLLMENT_ID = le.ID
inner join customer c on c.ID = l.CUSTOMER_ID
inner join DISTRIBUTOR d on d.ID = c.DISTRIBUTOR_ID
where d.ID = :distributorId
and lcs.COMPLETIONDATE is not null
and (lcs.COMPLETIONDATE between :fromDate and :toDate)
and lcs.COMPLETED = 1
कोशिश कर रहा हूँ मैं क्यों इस त्रुटि हो रही है है?
धन्यवाद
धन्यवाद :)। मैंने समस्या हल कर ली है। मैंने प्रोग्राम डीबग किया और फिर पाया कि स्कोर कॉलम डबल टाइप का है। तो फिर मैं बस '@ColumnResult (नाम =" स्कोर ", type = Double.class)' और परिवर्तन स्कोर 'Double' के प्रकार से किया था। – Basit
बहुत धन्यवाद :)। यह डीबग करने में मदद की। मेरे मामले में समस्या java.sql.Datetime के कारण थी। हाइबरनेट माइक्रोसॉफ्ट एसक्यूएल कॉलम से java.util.Datetime तक डेटाटाइम को परिवर्तित कर रहा है। कॉलम प्रकार को java.util में बदलने के बाद। डेटाटाइम, यह हल हो गया। –
बहुत बहुत धन्यवाद :)। यह डीबग करने में मदद की। मेरे मामले में समस्या java.sql.Timestamp के कारण थी। हाइबरनेट माइक्रोसॉफ्ट एसक्यूएल कॉलम से java.util.Date तक डेटाटाइम को परिवर्तित कर रहा है। कॉलम प्रकार को java.util.Date में बदलने के बाद, यह हल हो गया। – whoami