मैं हाइबरनेट के लिए नया हूं और मैं डेटाबेस से कुछ डेटा प्राप्त करने का प्रयास कर रहा हूं। मैं पूरा डेटा नहीं प्राप्त करना चाहता हूं लेकिन एक इकाई का प्रक्षेपण चाहता हूं।जावा - हाइबरनेट मानदंड .setResultTransformer() डिफ़ॉल्ट मानों के साथ मॉडल फ़ील्ड्स प्रारंभ करता है
बात यह है कि जब मुझे आईडी और मेरे प्रक्षेपण का नाम मिलता है तो फॉर-लूप में, यह आईडी = 7 और नाम = "नाम 8" के बजाय डिफ़ॉल्ट मान id = 0 और name = null प्राप्त करता है डेटाबेस में मूल इकाई के रिकॉर्ड हैं। क्या आप जानते हैं कि इस समस्या का कारण क्या है? फॉर-लूप अंतिम कोड में है।
यहाँ छात्र इकाई
@Entity(name = "Students")
public class Student {
@Id
@GeneratedValue
@Column(name = "StudentId")
private int id;
@Column(name = "Name", nullable = false, length = 50)
private String name;
@Column(name = "Grade")
private Double grade = null;
@ManyToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "FacultyId", nullable = false)
private Faculty faculty;
@ManyToMany(cascade = CascadeType.PERSIST)
@JoinTable(
joinColumns = @JoinColumn(name = "StudentId"),
inverseJoinColumns = @JoinColumn(name = "CourseId"))
private Collection<Course> courses;
public Student() {
this.courses = new HashSet<Course>();
}
// Setters and Getters for all fields
}
है यहाँ StudentModel
public class StudentModel {
private int id;
private String name;
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
और कोड मैं
Session session = sessionFactory.openSession();
session.beginTransaction();
{
Criteria criteria = session.createCriteria(Student.class);
criteria.add(Restrictions.eq("name", "Name 8"))
.setProjection(
Projections.projectionList()
.add(Projections.property("id"))
.add(Projections.property("name")))
.setResultTransformer(
Transformers.aliasToBean(StudentModel.class));
@SuppressWarnings("unchecked")
List<StudentModel> students = criteria.list();
for (StudentModel student : students) {
System.out.println(student.getId());
System.out.println(student.getName());
}
session.getTransaction().commit();
session.close();
}
जब गुणों का एक ही नाम होता है, तो हमें उपनाम निर्दिष्ट क्यों करना पड़ता है? – Ram
आपने मेरा जीवन बचाया !!! धन्यवाद – Erez