我编写了三个类 ( 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")
添加回答
举报
0/150
提交
取消