猿问

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

我编写了三个类 ( UserUserCredentialAddress),我想使用映射将数据存储到表中。我正在使用 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

        }

    }


皈依舞
浏览 128回答 3
3回答

侃侃无极

当您使用@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")
随时随地看视频慕课网APP

相关分类

Java
我要回答