Hazırda bekletme durumundayım ve veri tabanından veri almaya çalışıyorum. Tam verileri almak istemiyorum ama bir varlığın izdüşümü.Java - Hazırda bulunan ölçütler.setResultTransformer() model alanlarını varsayılan değerlerle başlatır
İşin özü, projeksiyonumun kimliğini ve ismini aldığımda, varsayılan değerlerini alır id = 0 ve ad = null yerine id = 7 ve name = "Name 8" Veritabanındaki orijinal varlığın kayıtlarıdır. Bu sorunun nedenini biliyor musun? For döngüsü, son kodda. İşte
İşte StudentModelpublic 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;
}
}
Ve Muhtemelen sadece tahminlere adlar atamak için unuttum ben
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();
}
Özellikler aynı ada sahip olduğunda, neden diğer adları belirtmek zorundayız? – Ram
Hayatımı kurtardın !!! Teşekkürler – Erez