【问题标题】:JpaRepository save value always returns nullJpaRepository 保存值始终返回 null
【发布时间】:2019-12-17 20:17:32
【问题描述】:

我正在尝试使用 JpaRepository 和 spring boot 和 mysql 发布

我有一张像这样的表

+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | varchar(255) | NO   | PRI | NULL    |                |
| user     | int(11)      | NO   |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+ 

每当我尝试保存数据时,无论我传递什么值,列用户始终为 0。

我的模型类看起来像这样

@Entity
@Table(name = "cart")
public class Cart {

    @Id
    @Column(name = "id", unique = true, nullable = false)
    private String id;
    @Column(name = "user")
    private Integer user;

// getters and setters
}

存储库如下所示

@Repository
public interface CartRepository extends JpaRepository<Cart, String> {

}

控制器长这样

@RequestMapping("/api/v1/cart")
@RestController
public class CartController {

    @Autowired
    CartRepository cartRepository;



    @PostMapping(value = "/postCart")
    public String postCart(@RequestBody Cart cart){
        cartRepository.save(cart);
        return "Success";
    }

}

【问题讨论】:

    标签: mysql spring-boot spring-data-jpa


    【解决方案1】:

    有些奇怪。您的 id 字段是一个字符串,但在数据库中它是一个 int(11)。它应该是 varchar 的变体。关于该用户将其类型从 int 更改为 Integer。一个 int 不能为空,所以它可能给它的值是 0。

    还尝试重新创建您的数据库模型,以便您 100% 确定它与您的实体模型匹配。

    【讨论】:

    • 对不起,我的错误应该是 varchar,我已经编辑了问题
    猜你喜欢
    • 1970-01-01
    • 2019-05-28
    • 2012-09-12
    • 2016-05-31
    • 2015-08-15
    • 2012-03-18
    • 2016-11-04
    • 2016-07-28
    • 2010-11-08
    相关资源
    最近更新 更多