当前位置: 首页 > 知识库问答 >
问题:

Spring boot JPA相关实体说明

长孙玉泽
2023-03-14

我有一个类似实体的流程,由一个用户创建、更新。当我尝试应用过滤器时。我已经在数据库中创建了外键关系。现在,当我使用JPA规范应用动态过滤器时,我得到了一个异常

找不到为类型进程创建的属性

@Table(name = "process")
@Entity
public class Process {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "PROCESS_ID")
    @JsonProperty("id")
    private Long id = null;
    
    @NotNull
    @Column(name = "NAME")
    @JsonProperty("name")
    private String name = null;

    @Column(name = "CREATED_BY", updatable = false)
    @JsonProperty("createdBy")
    private Long createdBy = null;

    @Column(name = "updatedBy", nullable = true)
    @JsonProperty("updatedBy")
    private Long updatedBy = null;
}

因此,我在流程实体中添加了实体关系映射,如下所示,

现在,我发现了错误。我是JPA和hibernate新手,关系映射非常混乱,请帮助。

@Table(name = "process")
@Entity
public class Process {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "PROCESS_ID")
    @JsonProperty("id")
    private Long id = null;
    
    @NotNull
    @Column(name = "NAME")
    @JsonProperty("name")
    private String name = null;

    @Column(name = "CREATED_BY", updatable = false)
    @JsonProperty("createdBy")
    private Long createdBy = null;

    @Column(name = "updatedBy", nullable = true)
    @JsonProperty("updatedBy")
    private Long updatedBy = null;
    
    //newly added below properties so that there will be no error when fetching data
     @OneToOne(targetEntity = UserDetails.class, fetch = FetchType.LAZY, mappedBy = "id")
    private UserDetails CREATED;

    @OneToOne(targetEntity = UserDetails.class, fetch = FetchType.LAZY, mappedBy = "id")
    private UserDetails UPDATED;

}

现在,我得到了以下错误引用的属性,而不是(一个|多个)ToOne:com。应用程序。用户。细节。领域用户详细信息。com的mappedBy中的id。应用程序。情节。领域过程已创建

请让我知道我做错了什么。我有一个流程,可以由用户创建,也可以由用户更新。在DB中,我对process和userdetails实体有一个外键关系。

编辑

使用JPA规范从数据库中获取过滤数据的代码

Page

  private static Specification<process> getprocessGridData(String processName) {
        return (Specification<process>) (root, query, criteriaBuilder) -> (
                criteriaBuilder.like(root.get("name"), processName)
        );
    }

共有1个答案

乌翰学
2023-03-14

我猜你真正想要的是:

@Table(name = "process")
@Entity
public class Process {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "PROCESS_ID")
    @JsonProperty("id")
    private Long id;
    
    @NotNull
    @Column(name = "NAME")
    @JsonProperty("name")
    private String name;
    
    @OneToOne(fetch = FetchType.LAZY)
    @jOINColumn(name = "CREATED_BY", updatable = false)
    private UserDetails createdBy;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "UPDATED_BY", nullable = true)
    private UserDetails updatedBy;

}
 类似资料:
  • 1. 版权问题 本项目mpvue-weui主要使用了 weui-wxss 中的相关文件,主要目的在于交流学习,如果冒犯了相关的开源协议,实属抱歉。 2. 内容问题 这篇文档是自己在重写了 WeUI 以后记录的,如果有说的不对的地方还希望各位大佬指出,一起学习。

  • null 这些类有各自的映射,在数据库模型中,这些表没有关联,在hibernate映射中也没有关联,但是在保存合同时,它必须在字段(业务规则)中具有相同的,但在某些情况下,也给出了没有验证的合同。 我的问题是当我运行HQL查询时: 但Hibernate使用交叉连接语句翻译并合并所有记录。是否有方法在文件中的非相关类之间执行HQL查询? 规则:不应是映射的实体。

  • 本文向大家介绍举例说明跟字体相关的属性有哪些?相关面试题,主要包含被问及举例说明跟字体相关的属性有哪些?时的应答技巧和注意事项,需要的朋友参考一下 :字体大小 :字体粗细 :字体类型 :字体颜色 更多

  • 目前只有音频,视频等多媒体待补充完善

  • 媒体库相关 一.流程 1.通过调用 申请视频ID接口 获取系统分配的视频ID 2.前端JS拿到视频ID相关参数,执行上传操作 3.将视频关联到房间 二.相关接口 1.申请视频ID 地址: https://ccapi.csslcloud.net/api/v1/video/createuploadinfo 备注: 需要THQS加密请求 方法: POST/GET 请求参数 参数名称 参数类型 参数

  • 我有两个遗留实体 和由。我有一个CriteriaAPI查询,它返回所有者集合,我需要按。 因为我不能将子查询放到,也不能更改这些实体的JPA映射,所以对我来说似乎并不容易。 请给任何想法。