2
我想刪除ExternalProcessed文件具有相同的ExternalProcessedFileInfo但這個查詢失敗。很容易,當關系恢復到@onetomany和級聯刪除,但我沒有找到ManytoOne關係的任何有用的例子。JPA manytoone關係刪除操作
這是我想運行的代碼,它將運行選擇查詢。
javax.persistence.Query query =this. manager.createQuery("Delete from ExternalProcessedFile "
+ " f WHERE f.processInfo.source.name= :source ");
query.setParameter("source",source.getName()) ;
EntityTransaction tran= manager.getTransaction();
try{
tran.begin();
query.executeUpdate();
tran.commit();
@Entity
@Table(name = "ProcessedFile")
public class ExternalProcessedFile implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "EID")
private Long id;
@NotNull
@ManyToOne
private ExternalProcessedFileInfo processInfo;
@Entity
@Table(name = "ProcessedFileInfo")
public class ExternalProcessedFileInfo implements Serializable {
public ExternalProcessedFileInfo(){
}
public ExternalProcessedFileInfo(String processtime,ExternalDataStorage source){
this.processTime=processtime;
this.source=source;
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "EID")
private Long id;
@ManyToOne
@JoinColumn
private ExternalDataStorage source;
@NotEmpty
@Column(name = "processtime")
private String processTime;
這是什麼意思不採取級聯考慮。我不期望刪除ExternalProcessedFile也刪除ExternalProcessedFileInfo。我只想刪除一組ExternalProcessedFileInfo的ExternalProcessedFileInfo屬性 – ayengin 2011-06-07 14:51:04
也許查詢失敗,因爲違反約束。您應該刪除子實體。 – Bozho 2011-06-07 14:54:01
我想從外部處理文件中刪除關係的所有者一方的記錄,我認爲它是chield.And異常說Sql語法異常。 – ayengin 2011-06-07 18:57:52