gpt4 book ai didi

java - 在其他表中的一对一映射字段中显示错误

转载 作者:行者123 更新时间:2023-12-04 09:30:57 24 4
gpt4 key购买 nike

共有三个实体类:User、UserProfile 和 Country
用户是一对一映射到用户配置文件
用户配置文件是一对多映射到国家
用户.java

@Entity
@Data
class Users{
@Id
private int id;
@Column(nullable = false)
@NotBlank
private String name;

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "alumnus_detail_id")
private UserProfile userProfile;

}
现在以下是 UserProfile.java
@Data
@NoArgsConstructor
@AllArgsConstructor
@Getter
@Setter
@Entity
public class UserProfile {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;

@Past(message="You may be a time traveler..")
@NotBlank
private Date dob;
@ManyToOne( cascade = { CascadeType.MERGE,
CascadeType.DETACH,CascadeType.REFRESH} )
@JoinColumn(name="country_id")
@NotBlank
private Country country;
}
现在下面是 country.java
@Data
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name="country")
public class Country {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String phonecode;
private String name;

@JsonIgnore
@UpdateTimestamp //hibernate specific feature
private LocalDateTime lastUpdatedDate;

@JsonIgnore
@CreationTimestamp //hibernate specific feature
private LocalDateTime createdDate;
}
现在,当我想使用 spring:bind 不显示国家/地区的验证错误时。它显示错误
以下是 profile-form.jsp

                    <form:form action="user-process" method="post"  modelAttribute="user">

<spring:bind path="name">
<div class="form-group">
<label for="name">Name</label>
<form:input class="form-control ${status.error ? 'is-invalid' : ''}" id="name" path="name"/>
<form:errors path="name" cssClass="invalid-feedback" />

</div>
</spring:bind>
<spring:bind path="userProfile.country">
<div class="form-group">
<label for="country">Country:*</label>
<form:select class="form-control ${status.error ? 'is-invalid' : ''}" id="country" path="userProfile.country.id">
<form:option value="0">Select </form:option>
<form:options items="${countryList}" itemValue="id" itemLabel="name"/>
</form:select>
<form:errors path="userProfile.country" cssClass="invalid-feedback" />
</div>
</spring:bind>
</form>

以下是用户 Controller
@RequestMapping("/user-manage")
public String userUpdate(@ModelAttribute(value = "user") Users user , ModelMap mapData){


mapData.addAttribute("countryList",countryService.findAll());

return "profile-form";
}
但是,当包括名称验证在内的其他一切工作正常时,而不是显示没有验证错误的国家/地区时
如何在映射上显示验证错误?

最佳答案

将 @Valid 注释添加到 userProfile。这将激活映射字段的验证

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "alumnus_detail_id")
@Valid
private UserProfile userProfile;

关于java - 在其他表中的一对一映射字段中显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62846393/

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