0
当我做下面的查询:预处理语句不起作用
return (Formation) em
.createQuery(
"SELECT f FROM Formation f WHERE f.model" + modelType + "= :modelId")
.setParameter("modelId", modelId)
.getSingleResult();
我得到这个错误:
org.hibernate.PropertyAccessException:无法获得通过反射字段值model.configuration.Model.id的吸气
当我通过类似上面的一个丑陋查询代替准备好的语句,它的工作原理:
return (Formation) em
.createQuery(
"SELECT f FROM Formation f WHERE f.model" + modelType + "= " + modelId)
.getSingleResult();
你有没有在地层类的modelId属性的getter和setter? – kand 2012-02-16 15:41:52
我不明白为什么我需要一个getter和一个名为modelId的setter,而我没有它们,因为我没有任何名为modelId的字段。 modelId不能匹配三个modelType:modelReport,modelProposal,modelInternship中的一个,为此我有getter和setter。 – DevAntoine 2012-02-17 08:44:08