如何在查询中使用参数

时间:2014-04-26 13:44:23

标签: mysql hibernate variables select parameters

错误:org.hibernate.QueryException:无法解析属性:codigo

以下是代码:

System.out.println("Codigo del curso que quiere consultar las matriculas");
codigo = intSc.nextInt();
Cursos curso = (Cursos) session.get(Matricula.class, codigo);
Query query1 = session.createQuery("SELECT m FROM Matricula m where m.codigo=codigo");
List<Matricula> matriculas = query1.list();
for (Matricula matricula : matriculas) {
     System.out.println(matricula.toString());
}

我认为问题是我试图在一个选择句子上插入参数,有谁知道我可以插入它?

真的感谢你的帮助:D

Matricula的结构

@Entity

@Table(姓名=&#34; Matricula&#34;) 公共类Matricula实现Serializable {

@Id
@Column(name = "num_matricula", unique=true)
private int num_matricula;

@ManyToOne
@JoinColumn(name="codigo_curso")
private Cursos curso;

@ManyToOne
@JoinColumn(name="codigo_alumno")
private Alumnos alumno;

新错误是:org.hibernate.QueryException:无法解析属性:codigo of:Proyecto.Matricula

感谢您快速回答;)

1 个答案:

答案 0 :(得分:0)

你应该使用这样的语法

    Query query1 = session.createQuery("FROM Matricula where curso=:curso");
    query1.setEntity("curso", curso);

如果您想要实现的目标是选择具有特定curso的Matricula。