gpt4 book ai didi

java - 将 ID 从查询转换为字符串

转载 作者:行者123 更新时间:2023-11-30 05:42:23 24 4
gpt4 key购买 nike

我有这个休息点,用于返回 ID:

@GetMapping("{id}")
public ResponseEntity<?> get(@PathVariable String id) {
return contractService
.findById(Integer.parseInt(id))
.map(mapper::toNewDTO)
.map(ResponseEntity::ok)
.orElseGet(() -> notFound().build());
}

DTO:

public class ContractNewDTO {
.....
private Integer terminal_id;
....
}

如何使用第二个 SQL 查询将terminal_id 转换为终端名称?

我需要这样的东西:

......map(mapper::toNewDTO) -> 获取terminal_id并进行另一个SQL查询以查找与此terminal_id相关的名称并返回终端名称而不是terminal_id。

您能给我一些如何做到这一点的建议吗?

最佳答案

所以你想根据terminal_id检索terminal_name。您有几个选择:

1) 如果 terminal_nametemrminal_id 位于同一个数据库表中,则应将其加载到 mapper 的 ContractNewDTO 内::toNewDTO 您可以实现使用 terminal_name 而不是 temrminal_id 的转换逻辑。

2) 如果 termminal_name 在另一个表中(例如,terminaldetails 表),并且您将需要该表中的所有数据,那么您可以创建一个映射(例如,在 terminal_id 上加入 OneToOne )。 Here是大师本人撰写的关于如何进行 OneToOne 映射的优秀著作。

3) 另一种选择是使用@SecondaryTable。假设您当前的实体是 TerminalEntity,它具有 terminal_id 列并映射到表“terminal”。 terminal_name 位于另一个表“terminaldetails”中。

你能做的是:

@Entity
@Table(name = "terminal")
@SecondaryTable(name = "terminaldetails")
public class TerminalEntity {
@Id
@GeneratedValue
private Long id;

@Column(name = "terminal_id")
private String terminalId;

@Column(name = "terminal_name", table = "terminaldetails")
private String terminalName;
}

关于java - 将 ID 从查询转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55421374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com