当前位置: 首页 > 面试题库 >

无法将java.lang.Integer字段设置为java.lang.Integer

瞿健
2023-03-14
问题内容

用户声明:

@Entity
public class User {
    @Id
    @GeneratedValue
    private Integer id;
    ....

模式声明:

@Entity
public class Pattern {
    @Id
    @GeneratedValue
    Integer id;
    ...

UserPatternDeclaration:

public class UserPattern {
    @Id
    @GeneratedValue
    Integer id;

    @ManyToOne
    @JoinColumn(name = "user_id")
    User user;

    @ManyToOne
    @JoinColumn(name = "pattern_id")
    Pattern pattern;
    ...

请求数据库:

Session session = sessionFactory.getCurrentSession();
Query query = session.createQuery("from UserPattern where user = :user_id and pattern = :pattern_id ");
query.setParameter("user_id", userId);
query.setParameter("pattern_id", pattern_id);
List<UserPattern> list = query.list();//exception throws here

我得到以下异常

 ...
    java.lang.IllegalArgumentException: Can not set java.lang.Integer field 
    com.....s.model.User.id to java.lang.Integer
        at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)
        at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:168)
        at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:55)
        at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:36)
        at java.lang.reflect.Field.get(Field.java:379)
    ....

请帮助解决此问题。

错误消息看起来非常非常奇怪。

我已阅读相关主题的点击,但未找到答案。

ps

hibernate日志(异常之前):

Hibernate: 
    select
        userpatter0_.id as id1_2_,
        userpatter0_.amountSearched as amountSe2_2_,
        userpatter0_.amountplayed as amountpl3_2_,
        userpatter0_.pattern_id as pattern_4_2_,
        userpatter0_.user_id as user_id5_2_ 
    from
        UserPattern userpatter0_ 
    where
        userpatter0_.user_id=? 
        and userpatter0_.pattern_id=?

在浏览器中,我看到以下消息:

HTTP Status 500....could not get a field value by reflection getter of...model.User.id

问题答案:

如果将HQL查询更改为会from UserPattern where user.id = :user_id and pattern.id = :pattern_id怎样?

我认为Hibernate混淆了对象和ID字段。



 类似资料:
  • 我有一个项目班: 然后是合作者: 在我的DAO中,我想执行以下查询: null 如有任何帮助,我将不胜感激。谢谢。

  • 问题内容: 我收到以下异常。 造成原因: java.lang.ClassCastException:无法将java.math.BigInteger强制转换为java.lang.Integer 用下面的代码 在这条线 有人知道吗? 问题答案: 您可以使用: 或者也许覆盖了和价值观。

  • 问题内容: 我知道在stackoverflow中已经对此提出了很多要求,但是我找不到适合我问题的答案。 在下面的以下代码中,我无法打印出每个项目,因为它说。 我曾尝试使用来打印每个项目,但都无法正常工作。 我认为可能是由于Edge类中的方法导致的问题,但是如果我不使用它,我将无法获得真实的键号(它将被打印为或类似的形式) 感谢您之前的帮助 主班 边缘类 图类 节点类 问题答案: private H

  • 问题内容: 我从JavaFX开始。 当我执行程序时,发生错误,在尝试执行此操作之前,它工作正常且按钮单击正常,但这是在我打算使按钮单击更改文本之前。 那就是FXML,在行上,您可以看到文本为“我的文本将改变!”。在Eclipse的FXML文本编辑器上,它给了我这个错误:“您不能将’Text’分配给控制器字段’Label’。 这是我的SceneController类: 如前所述,在获得标签之前,它将

  • 问题内容: 我有一个包含以下定义: 值定义如下: 在活动中被调用如下: 到目前为止,一切都很好,但是当代码被实际调用时,我得到了这个错误: 这个错误对我来说没有任何意义。该列表仅包含可以转换为int的值,并且xml文件和代码中给出的默认值也仅表示一个数字。那么,为什么会出现此错误,以及如何解决呢? 问题答案: 如果您查看内部的内容,将会发现问题: 您的键“ limitSetting”返回一个不能转

  • 问题内容: 我试图从我的xml中将按钮的文本设置为“ <<<”,但出现“错误:(20)解析XML时出错:格式不正确(无效令牌)” 因此,我跳到我的strings.xml并在其中输入它,这显然行不通。 有没有解决方法? 问题答案: 这些是html实体,也可以在android studio中使用: