spring - Java Spring 创建新记录而不是更新现有记录
问题描述
我正在使用Javaspringboot,我尝试更新现有记录,但它创建了一个新记录,我一直在寻找原因,但我被卡住了。任何建议将不胜感激。我的商店控制器:
@GetMapping("/store/update/{idStore}")
public String updateStoreForm(
@PathVariable Long idStore,
Model model
) {
StoreModel store = storeService.getStoreByidStore(idStore);
List<ManagerModel> listManager = managerService.getManagerList();
model.addAttribute("listManager", listManager);
model.addAttribute("store", store);
return "form-update-store";
}
@PostMapping("/store/update")
public String updateStoreSubmit(
@ModelAttribute StoreModel store,
Model model
) {
LocalTime now = LocalTime.now();
if ( (now.isBefore(store.getWaktuBuka()) || now.isAfter(store.getWaktuTutup())) ){
storeService.updateStore(store);
model.addAttribute("idStore", store.getIdStore());
return "update-store";
}
return "error-page";
}
我的模型:
public class StoreModel implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idStore;
@NotNull
@Column(nullable = false)
@DateTimeFormat(pattern = "HH:mm")
private LocalTime waktuBuka;
@NotNull
@Column(nullable = false)
@DateTimeFormat(pattern = "HH:mm")
private LocalTime waktuTutup;
//storecode
@NotNull
@Size(max=10)
@Column(name="kode_store", nullable = false, unique = true)
private String kodeStore;
//relasi OnetoOne ke manager
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "id_manager")
private ManagerModel manager;
@OneToMany(mappedBy = "store")
private List<StorebobateaModel> storebobatea;
}
我的提交表格:
<!DOCTYPE html>
<html lang="en">
<!DOCTYPE html>
<html lang="en" xmlns:th="http://thymeleaf.org">
<head>
<title>BOBAXIXIXI</title>
<meta charset="UTF-8">
<title> Home </title>
<object th:include="fragments/fragment :: css" th:remove="tag"></object>
<object th:include="fragments/fragment :: js" th:remove="tag"></object>
</head>
<body style="background-color: #fff3cd">
<nav th:replace="fragments/fragment :: navbar('Store')"></nav>
<div class="card m-4 p-4">
<div class="card-body">
<h3 class="card-title text-center" style="color: #533f03">Update Store</h3>
<br>
<form th:action="@{/store/update}" th:object="${store}" method="POST">
Store Name : <br>
<input required class="form-control" type="text" name="namaStore"/>
<br><br>
Adress : <br>
<input required class="form-control" type="text" name="addressStore"/>
<br><br>
Waktu Buka : <br>
<input required class="form-control" type="time" name="waktuBuka" />
<br><br>
Waktu Tutup : <br>
<input required class="form-control" type="time" name="waktuTutup" />
<br><br>
Manager:
<select th:field="*{manager}" class="form-control">
<option th:each="manager : ${listManager}"
th:value="${manager.idManager}"
th:text="${manager.namaManager}">
</option>
</select>
<br>
Kode:
<input required class="form-control" type="text" name="kodeStore"/>
<br>
<br>
<button class="btn btn-primary" type="submit">Submit</button>
</form>
</div>
</div>
</body>
</html>
数据库:
它创建一个新的“id_store”而不是更新现有的。我该如何解决?
解决方案
推荐阅读
- reactjs - 发布 https://api.jdoodle.com/v1/execute net::ERR_ABORTED 415
- azure - Azure Active Directory (AAD) 用户名的最大长度是多少?
- vlookup - 如何创建一个在多个报告之间提取和过滤数据的宏
- c# - 是否可以通过 Microsoft Graph 创建 Azure RBAC 角色
- git - 如何在 Shopware 6 开发系统上管理媒体?提交 git 还是不提交?
- java - 导入词法分析器语法(ANTLR 4)
- swiftui - SwiftUI NavigationView Secondary 未显示
- c++ - 函数和 void 函数之间的变量如何工作/相互作用?
- python - OSError: [WinError 123] 文件名、目录名或卷标语法不正确:'
' 对于 django 项目 - oracle - 为什么我的 SQL*Plus 结果只允许逗号分隔的结果?