Java 在进行ajax调用时,如何将外键传递给json数据?

Java 在进行ajax调用时,如何将外键传递给json数据?,java,json,spring,hibernate,orm,Java,Json,Spring,Hibernate,Orm,关于使用ajax将数据发布到另一个表中包含外键的表,我面临一些困惑。我可以通过SpringPOJO的对象绑定来实现这一点,但我正在尝试创建一个程序,该程序只处理JSON格式的客户端和服务器端数据传输 例如,我在Student和Grade表之间有一对多关系。成绩表中的外键是学生id 现在,如果我试图在grade表中插入学生id=1的内容。json数据应该是什么样子 假设等级表包含以下三列: grade\u Id,grade\u received,student\u Id\u fk 如果没有外键,我

关于使用ajax将数据发布到另一个表中包含外键的表,我面临一些困惑。我可以通过SpringPOJO的对象绑定来实现这一点,但我正在尝试创建一个程序,该程序只处理
JSON
格式的客户端和服务器端数据传输

例如,我在
Student
Grade
表之间有一对多关系。成绩表中的外键是
学生id

现在,如果我试图在
grade
表中插入学生id=1的内容。json数据应该是什么样子

假设等级表包含以下三列:

grade\u Id,grade\u received,student\u Id\u fk

如果没有外键,我可以像这样传递json数据:

{
    "grade_Id": 2,
    "grade_received": "A"
}

如果我需要json数据包含
学生id\u fk
,我需要更改什么?

这样的json对象将提供足够的信息在服务器上执行插入:

   {
        "student_id": 1,
        "grade_received": "A"
    }

SQL类似于将
插入服务器上的Grades(student\u id\u fk,grade\u received)值(1,'A')

我通过在
grade.java
类中添加一个新的私有变量解决了这个问题。我创建了
private Integer studentId
,并用
@Transient
对其进行了注释,这样hibernate就不会将其持久化


然后使用
studentId
变量获取
Student
对象。

无法理解您的问题,为什么不能在JSON中使用“Student\u id\u fk”键值对???@hagrawal如果我错了,请更正我。在我的
成绩
实体中,
@ManyToOne
注释位于
私人学生的顶部变量。因此,我的pojo中实际上没有
student\u id\u fk
变量。但是在插入时,您需要知道并传递student表中的主键student id值。。它不像trigger那样可以根据某些东西做一些事情,这是你需要的核心信息。。唯一的问题是,当插入到成绩表中时,学生id应该出现在学生表中。。但是你需要学生证。。因此Grade对象的student对象将具有student id。。但在客户端,您需要传递学生id。。不管怎样,这都会发生,因为你的成绩对象/JSON中可能没有传递NULL student。看看我更新的评论。@hagrawal是的,在进行ajax调用时,student\u id将可用。所以你说我传递JSON数据中的
student\u id\u fk
,并使用该id从java端获取
Student
对象?这就足以进行插入,但不会更新PK-FK关系列。在我的情况下,成绩表中的
student\u id\u fk
列将为空。如果编辑的答案仍然无效,Grade.java类中没有
student\u id\u fk
。java端完成的FK-PK映射不仅使用id,还使用对象。您在OP中提供的关于如何在服务器上完成操作的相关信息很少。也许会更新你的OP?另一个帖子指出,另一种选择是使用
AJAX
请求提供的Id获取一个Student对象,并在
Grade
对象上设置
Student