我是Hibernate的新手,我正在尝试执行以下操作但是出现unexpected token: :
错误。这肯定是一个菜鸟错误,因为我是一个菜鸟。我已经使用Vehicle类填充了表。当我不使用命名参数时,此代码工作正常。但我想知道它为什么不起作用。
import java.util.Iterator;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.dono.util.SessionManager;
import org.javabrains.dono.dto.cascade.Vehicle;
public class HQL {
public static void main(String[] args) {
Session session = SessionManager.configureSessionFactory().openSession();
session.beginTransaction();
/*for (int i = 1; i <=10; i++) {
Vehicle vehicle = new Vehicle();
vehicle.setVehicleName("Car no. "+i);
session.save(vehicle);
}*/
String q="from :tabl";
Query query= session.createQuery(q);
query.setString("tabl", "Vehicle");
query.setFirstResult(3);
query.setMaxResults(2);
List<Vehicle> vehicles= (List<Vehicle>) query.list();
session.getTransaction().commit();
session.close();
for (Iterator<Vehicle> i = vehicles.iterator(); i.hasNext();) {
Vehicle car = (Vehicle) i.next();
System.out.println(car.getVehicleName());
}
}
}
答案 0 :(得分:0)
该参数通常在where子句中使用。
错:
session.creteQuery("from :tabl");
右:
session.createQuery("from Vehicle");
使用参数:
Query qry = session.createQuery("from Vehicle where id = :id");
qry.setParameter("id", yourId);