防止弹簧去除主键串中的前导零

时间:2018-07-09 17:07:28

标签: java spring hibernate jpa spring-data-jpa

我有两节课。两者都有一个名为“ entityId”的列,它们是字符串。例如:03021

我正在表上建立一个ManyToOne关系,该关系具有一个外键,该外键映射到表A上的entityId。

    public ParentEntity parent;
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "entityId", insertable = false, updatable = false)
    public ParentEntity getParent() {
        System.out.println(parent);
        return parent;
    }
    public void setParent(ParentEntity parent) { this.parent = parent; }

此映射有效,但是当我点击并显示端点时,该关系将显示:

http://localhost:8080/entity/3/parent将从ID中删除前导零。

给出此错误:

Unable to find service.models.ParentEntity with id 5933

该行的parentEntity ID为05933,但Spring删除了前导零。

我已经配置了Rest Adapter将该ID当作主键。所有函数都将其指定为字符串。

config.withEntityLookup().forRepository(
           ParentEntityRepository.class, 
           ParentEntity::getEntityId, 
           ParentEntityRepository::findByEntityId
);

这是怎么回事!?

0 个答案:

没有答案