상속 된 프로젝트에서 작업 중이며 약간의 문제가 있습니다. 내 데이터베이스에는 센서 용 테이블이 있습니다. 센서는 작업이 가능하며 작업을위한 테이블이 있습니다. 나는 센서를 추가하고 제거 할 수 있습니다. 센서에 대한 작업이 완료되면 ConstraintViolationException이 발생합니다. 작업 엔티티는 센서 객체에 대한 참조를 유지하며 문제가 어딘가에 있다는 것을 확신합니다. 내 센서 DAO 객체를 사용하여 센서를 삭제하고 관련 작업을 모두 자동으로 삭제하도록 할 수 있습니다. 나는 이것을 통해 내 방식을 어지럽히고 있으며 센서 클래스에 일종의 캐스케이드 주석을 추가해야한다고 생각하지만 확실하지 않습니다. 여기에 작업 개체입니다최대 절전 모드 테이블에서 종속 레코드를 삭제하는 방법
@Entity
@Table(name = "sensors")
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
public class Sensor {
@Id
@Column(name = "sensor_id")
private String sensorId;
@Column(name = "obs_area_wkt", length = 2048)
private String observableAreaWKT;
@Column(name = "tasking_provider")
private String taskingProvider;
@Column(name = "delivery_uri")
private String deliveryUri;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "data_service_id")
private DataService dataService;
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "sensor_description")
private SensorDescription sensorDescription;
@Column(name = "observable_property")
private String observableProperty;
과 :
@Entity
@Table(name = "tasks")
@Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
public class Task {
@Id
@Column(name = "task_id", length=276)
private String id;
@ManyToOne(cascade = CascadeType.ALL)
@Cascade(org.hibernate.annotations.CascadeType.ALL)
@JoinColumn(name ="sensor")
private Sensor sensor;
@Type(type = "org.joda.time.contrib.hibernate.PersistentDateTime")
@Column(name = "recieved")
private DateTime received;
@Type(type = "org.joda.time.contrib.hibernate.PersistentDateTime")
@Column(name = "executed")
private DateTime executed;
@Column(name = "command_text")
@Lob
private String commandText;
@Column(name = "task_parameters")
@Lob
private String taskParameters;
@Column(name = "status")
private String status;
@Column(name = "request_status")
private String requestStatus;
@Column(name = "user_id")
private String userId;
@Column(name = "group_id")
private String groupId;
당신은 남자입니다 :) – Bal