Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Spring 我该如何定义;完全定义的关系”;在类似JPA的.NET实体框架中_Spring_Jpa_Spring Data Jpa - Fatal编程技术网

Spring 我该如何定义;完全定义的关系”;在类似JPA的.NET实体框架中

Spring 我该如何定义;完全定义的关系”;在类似JPA的.NET实体框架中,spring,jpa,spring-data-jpa,Spring,Jpa,Spring Data Jpa,实体框架支持不同的定义类型。示例: 我想在JPA中定义像示例4(约定4)一样的OneToMany。我如何在JPA中做到这一点 public class Student { public int Id { get; set; } public string Name { get; set; } public int CurrentGradeId { get; set; } [ForeignKey("CurrentGradeId")] public Gr

实体框架支持不同的定义类型。示例:

我想在JPA中定义像示例4(约定4)一样的OneToMany。我如何在JPA中做到这一点

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }

    public int CurrentGradeId { get; set; }

    [ForeignKey("CurrentGradeId")] 
    public Grade CurrentGrade { get; set; }
}

public class Grade
{

    public int GradeId { get; set; }
    public string GradeName { get; set; }

    public ICollection<Student> Student { get; set; }
}
公共班级学生
{
公共int Id{get;set;}
公共字符串名称{get;set;}
public int CurrentGradeId{get;set;}
[外键(“当前等级ID”)]
公共等级CurrentGrade{get;set;}
}
公营班级
{
public int GradeId{get;set;}
公共字符串GradeName{get;set;}
公共ICollection学生{get;set;}
}
在StudentObject中有等级的ForeignKey(CurrentGradeId)和EntityReference(CurrentGrade)


更新ForeignKey(CurrentGradeId)和更新EntityReference(CurrentGrade)之间没有区别。两者都指向同一个表列。

假设您询问的是Spring和JPA,您可以执行以下操作

@Entity
public class Student
{
    @Id
    public int Id;

    public string Name;

    @OneToMany(mappedBy = "student") 
    public List<Grade> grades;

    // getters and setters and constructors
}

@Entity
public class Grade
{

    @Id
    public int GradeId;
    public string GradeName;

    @ManyToOne
    public Student student;

    // getters and setters and constructors
}
@实体
公立班学生
{
@身份证
公共int Id;
公共字符串名称;
@OneToMany(mappedBy=“学生”)
公开名单职系;
//getter、setter和构造函数
}
@实体
公营班级
{
@身份证
公共int GradeId;
公共字符串名称;
@许多酮
公立学生;
//getter、setter和构造函数
}

您可能会像上面那样使用@OneToMany和@ManyToOne注释。

存在误解。我还想定义studentId,比如Grade对象中的字段。因为在某些情况下,我将使用studentId字段,在某些情况下使用对象引用(student)。