为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 spring boot 将数据从一个 html 表单传递到多个表

如何使用 spring boot 将数据从一个 html 表单传递到多个表

皈依舞 2021-09-12 15:37:39
我编写了三个类 ( User, UserCredential, Address),我想使用映射将数据存储到表中。我正在使用 JSON 将数据存储到表中。当我存储数据时,数据存储在所有表中,但在它显示的用户 id 中1,在 UserCredential id 中显示3,在 Address id 中显示,2而在第一个条目中,所有 id 都应该是1。我真的不明白如何克服这个问题。JSON 存储数据的格式{    "fName":"suresh kumst",    "lName":"dingh",    "mobile":4595498366,    "email":"ksuraj1sd00@gmail.com",    "dob":"2012-04-23T18:25:43.511Z",    "address":{        "city":"noida",        "state":"up",        "h_no":"123"    },    "userCredential":{        "username":"ksuraj1asd002",        "password":"12345",        "cnfrmpassword":"12345"    }}并且具有不同 id 的响应,而它们在第一个条目中应该是 1 并且用户 id 应该具有值    {        "id": 1,        "fName": "suresh kumst",        "lName": "dingh",        "email": "ksuraj1sd00@gmail.com",        "mobile": 4595498366,        "dob": "2012-04-23T18:25:43.511+0000",        "image": null,        "userCredential": {            "id": 3,            "username": "ksuraj1asd002",            "password": "12345",            "cnfrmpassword": "12345"        },        "address": {            "id": 2,            "city": "noida",            "state": "up",            "h_no": "123",            "user": null        }    }
查看完整描述

3 回答

?
侃侃无极

TA贡献2051条经验 获得超10个赞

当您使用@GeneratedValue(strategy=GenerationType.AUTO)底层 ORM 框架时,将使用标识列、序列或表,具体取决于底层数据库。在您的情况下,我猜它正在使用一个序列(用于为所有表生成 ID 的单个序列)。如果是这种情况,为了实现每个表 ID 独立于其他表,您必须为每个实体提供不同的序列名称。


如果您使用的是 Hibernate,请考虑使用@GenericGenerator. 来自其他SO 答案的示例:


@GenericGenerator(

    name = "wikiSequenceGenerator",

    strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",

    parameters = {

            @Parameter(name = "sequence_name", value = "WIKI_SEQUENCE"),

            @Parameter(name = "initial_value", value = "1000"),

            @Parameter(name = "increment_size", value = "1")

    }

)

@Id

@GeneratedValue(generator = "wikiSequenceGenerator")


查看完整回答
反对 回复 2021-09-12
  • 3 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信