[Spring Data JPA] 无效列名、Unknown c

2021-01-29  本文已影响0人  轻记事APP
简介

这是今天做接口遇到的第二个问题,挺无奈的,因为项目原本用的就是JPA,之前没有使用过就遇到了一些坑。

情况

在表的映射实体添加一个非表字段的自定义属性(没有使用 @Column 注解),在调用插入操作时报错:无效列名 XXX

例子
public class WmsMovePlan implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    Integer id;
    
    @Column(name = "prodcode", nullable = false)
    String prodcode;

    // 这个字段自定义的
    String cusStatus;
}
public void insert(WmsMovePlan plan) {
    // 报错:“无效列名 cusStatus`
    dao.save(plan);
}
原因

报出上面的异常,说明即使不加 @Column 注解,JPA也会持久化该字段。

意图

在表的映射实体添加一个属性,而数据表中不必添加该字段。

解决

JPA不持久化某字段的解决方案:@Transient 注解(javax.persistence.Transient)表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。

上一篇下一篇

猜你喜欢

热点阅读