entityManager.find()返回意外的对象

时间:2017-08-17 17:11:23

标签: jpa spring-boot

我有一个名为User的模型,我正在尝试使用entityManager.find()获取User的值;

奇怪的是,对于特定ID“16”,它返回一个类型为User _ $$ _ jvst290_G的对象。 对于所有其他ID,它返回User类。 当我尝试访问其属性时,每个值都被完美地获取,但在eclipse调试器中,每个值都显示为null。

以下是我的代码

boolean success = false;
        Feed feed = this.entityManager.find(Feed.class, feedId);
        User liker = this.entityManager.find(User.class, userId);
        LOGGER.info("unliker is "+liker.getName());
        List<User> likers = feed.getLikers();
        LOGGER.info("likers before unlike:"+likers.size());
        for(User lkr: likers) {
          LOGGER.info("ID:"+lkr.getId());// prints all Ids including 16
        }
        if(likers.remove(liker)) { //Returns false for user with ID 16
            feed.setLikers(likers);
            LOGGER.info("likers afetr unlike:"+feed.getLikers().size());
            this.entityManager.flush();
            success = true;
        }
        else {
            LOGGER.error("User has not liked this product");
            throw new NoRowChangedException("User has not liked this product");
        }
        return success;

除了16之外,我不确定它对其他一些值的行为是否相同。 有没有猜到发生了什么?下面是截图 enter image description here

在用户

中重写了相等的方法
@Override
    public boolean equals(Object obj) {
        boolean result = false;
        if(obj instanceof User) {
            User user = (User) obj;
            result = this.id == user.id;
        }
        return result;
    }

0 个答案:

没有答案