Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring boot JPA相关实体说明_Java_Spring_Hibernate_Jpa - Fatal编程技术网

Java Spring boot JPA相关实体说明

Java Spring boot JPA相关实体说明,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我有一个类似实体的流程,它将由一个用户创建、更新。当我尝试应用过滤器时。我已经在数据库中创建了外键关系。现在,当我使用JPA规范应用动态过滤器时,我得到的异常如下 找不到为类型进程创建的属性 @Table(name = "process") @Entity public class Process { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = &quo

我有一个类似实体的流程,它将由一个用户创建、更新。当我尝试应用过滤器时。我已经在数据库中创建了外键关系。现在,当我使用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;

}
现在,我得到下面的错误
在com.app.scenarios.domain.Process.CREATED的mappedBy中引用的属性不是一个(一个或多个)ToOne:com.app.users.details.domain.UserDetails.id

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

编辑

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

Page result=this.processDao.findAll(getprocessGridData(processSearchCondition.getprocessName()),pageRequest)

私有静态规范getprocessGridData(字符串processName){ 返回(规范)(根、查询、准则生成器)->( criteriaBuilder.like(root.get(“name”)、processName) ); }
我想你真正想要的是:

@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;

}

当我使用JPA规范应用动态过滤器时
-请说明您是如何做到的?添加了使用JPA规范的代码。由于上述relationshop错误,应用程序未运行
@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;

}