当前位置: 首页 > 知识库问答 >
问题:

Java JPA错误;您试图从查询字符串中设置类型为class data预期类型为int的值

东郭宏朗
2023-03-14

我有以下java JPA项目的错误。有人能帮我吗?非常感谢。

类型异常报告

消息您试图设置类数据类型的值。CityMake对于查询字符串中预期类型为int的参数CityMakeId,请从Foodmodel f中选择f,其中f.CityMakeId=:CityMakeId order by f.foodModelName。

说明服务器遇到意外情况,无法满足请求

例外

JAVAlang.IllegalArgumentException:您试图设置类数据类型的值。CityMake对于查询字符串中预期类型为int的参数CityMakeId,请从Foodmodel f中选择f,其中f.CityMakeId=:CityMakeId order by f.foodModelName。

org.eclipse.persistence.internal.jpa.QueryImpl.set参数内部(QueryImpl.java:933)

组织。日食坚持不懈内部的jpa。EJBQueryImpl。setParameter(EJBQueryImpl.java:593)

道。FoodModelDAO. getModels(FoodModelDAO. java: 69)

servlets。StartServlet。processRequest(StartServlet.java:67)

servlets。StartServlet。doGet(StartServlet.java:86)

javax.servlet.http.HttpServlet.service(HttpServlet.java:635)

javax。servlet。http。HttpServlet。服务(HttpServlet.java:742)

组织。阿帕奇。公猫websocket。服务器WsFilter。doFilter(WsFilter.java:52)

注意:根本原因的完整堆栈跟踪可在服务器日志中找到。

--------------------------------FoodModelDAO。爪哇---------------------

公共类FoodModelDAO{

  public static List<Foodmodel> getModels(int makeid)
  {

    CityMake make = CityMakeDAO.findMakeById(makeid);

    EntityManager em = DBUtil.getEmFactory().createEntityManager();
    String qString = "Select f from Foodmodel f " +
                     "WHERE f.cityMakeMakeID = :cityMakeMakeID  " +
                     "order by f.foodModelName";

    TypedQuery<Foodmodel> query = em.createQuery(qString, Foodmodel.class);

      query.setParameter("cityMakeMakeID", make );

    try
    {
        List<Foodmodel> models = query.getResultList();
        return models;
    }

    catch(NoResultException e) 
    {
        return new ArrayList<Foodmodel>();
    }
    finally 
    {
        em.close();
    }
  }

}

---------------FoodModel.javapost 4/2/2018----------------------- 我又更新了FoodModel post。

enter code here




@Entity
public class FoodModel {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long    foodModelId;
private String  foodModelName;


@OneToOne
private CityMake cityMakeMakeID;

public FoodModel() {

    foodModelName = "";

}

public FoodModel(Long m, String v, CityMake makeObj) {
    foodModelId = m;
    foodModelName = v;
    //citymake = makeObj;
    cityMakeMakeID = makeObj;
}

public Long getModelId() {
    return foodModelId;
}

public void setModelId(Long id) {
    foodModelId = id;
}

public String getModelName() {
    return  foodModelName;
}

public void setModelName(String value) {
    this.foodModelName = value;
}

public CityMake getMake() {
    //return citymake;
    return cityMakeMakeID;
}

public void setMake(CityMake make) {
    //this.citymake = make;
    this.cityMakeMakeID = make;

 }

}

共有1个答案

管梓
2023-03-14
    query.setParameter("cityMakeMakeID", makeid);

为什么?您正在为Foodmodel创建类型化查询。类,因此参数类型应该与模型对应(查看FoodModel,属性定义为int)。

    @Column(name = "CityMake_MakeID")
    private int cityMakeMakeID;

如果您的模型是这样定义的,那么您的工作方式应该是:

    @OneToOne //Or any type of relation that matches your needs
    private CityMake cityMakeMakeID; //See the variable Type
 类似资料:
  • 我在玩代码。我在GitHub上找到的(https://github.com/avijeets/ConnectFour)被一个我无法清除的错误彻底难住了。 错误是: "无法将“[[CFCellState]]”类型的值转换为预期的参数类型“Int”" VC顶部的代码,其中定义了: 发生错误的代码:

  • 我正在使用JPA2和eclipslink。。。 我试图执行此查询: List postEntityList=entityManager。createQuery(“从PostEntity p中选择p,其中p.organizationEntity=?1和p.organizationUnitEntity=?2和p.organizationLocationEntity=?3和p.organizationB

  • 问题内容: 试图使react-router(v4.0.0)和react-hot-loader(3.0.0-beta.6)正常播放,但是在浏览器控制台中出现以下错误: 警告:React.createElement:类型无效- 预期为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记了从定义文件中导出组件。 index.js: route.js: 问题答案: 在大多数情况下,

  • 我有这个问题,当我生成签名apk: F:\。。。\app\src\main\java\com\palletdesign\clipdooni\Activity\u VideoPlay。java错误:错误:类型为字符串[ResourceType]的预期资源 这是活动视频游戏。java(这部分代码的错误):

  • 我是斯威夫特的新人,现在尽我所能地学习这个。我写了得到参数的函数:数字和函数,它们与这个数字一起工作: 但是编译给出错误。当我试图改变论点时,比如

  • 请帮助我如何在关于触觉的 行中: 消息gradle Builder中的问题: 错误:错误:类型字符串的预期资源[ResourceType]