Java 在进行ajax调用时,如何将外键传递给json数据?
关于使用ajax将数据发布到另一个表中包含外键的表,我面临一些困惑。我可以通过SpringPOJO的对象绑定来实现这一点,但我正在尝试创建一个程序,该程序只处理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 如果没有外键,我
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