내 DAO 및 엔티티는 다음과 같습니다. 감사.난 콩 검증을 사용하고 있습니다. 내 엔터티의 PerPersist 메서드에서 유효성 검사가 실패 할 경우 지속을 중지하려면 어떻게해야합니까?
엔티티 :
import java.io.Serializable;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import javax.persistence.Table;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* The persistent class for the CAR database table.
*
*/
@Entity
@Table(name="CAR")
public class Car implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="CAR_ID")
private int carId;
@Column(name="INSPECTION_PASSED")
@AssertTrue(message = "The car has to pass the vehicle inspection first")//, groups = CarChecks.class)
private boolean inspectionPassed;
@Column(name="LICENSE_PLATE_NUMBER")
@NotNull(message = "A license plate is required.")
@Size(min = 2, max = 14, message="The license plate field must be 2-14 characters.")
private String licensePlateNumber;
@Column(name="MANUFACTURER")
@NotNull(message = "A manufacturer is required.")
private String manufacturer;
@Column(name="REGISTERED")
private boolean registered;
@Column(name="SEAT_COUNT")
@Min(value =2, message="The car must contain more than 1 seat.")
private int seatCount;
@Column(name="DRIVER_ID")
private int driverId;
@PrePersist
public void testPrePersist(){
System.out.println("@@@@PrePersist was called. " + manufacturer);
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<Car>> violations = validator.validate(this);
for (ConstraintViolation<Car> violation : violations) {
System.out.format("%s: %s%n",violation.getPropertyPath(), violation.getMessage());
}
}
public Car() {
}
public int getCarId() {
return this.carId;
}
public void setCarId(int carId) {
this.carId = carId;
}
public boolean getInspectionPassed() {
return this.inspectionPassed;
}
public void setInspectionPassed(boolean inspectionPassed) {
this.inspectionPassed = inspectionPassed;
}
public String getLicensePlateNumber() {
return this.licensePlateNumber;
}
public void setLicensePlateNumber(String licensePlateNumber) {
this.licensePlateNumber = licensePlateNumber;
}
public String getManufacturer() {
return this.manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
public boolean getRegistered() {
return this.registered;
}
public void setRegistered(boolean registered) {
this.registered = registered;
}
public int getSeatCount() {
return this.seatCount;
}
public void setSeatCount(int seatCount) {
this.seatCount = seatCount;
}
public void setDriverId(int diverId) {
this.driverId = diverId;
}
public int getDriverId() {
return driverId;
}
}