我所有的JPA实体类都实现了一个称为Entity的接口,其定义如下:
public interface Entity extends Serializable {
// some methods
}
Run Code Online (Sandbox Code Playgroud)
我的JPA实体的某些字段@Column
在其顶部有注释,而有些则没有。MyEntity
类的定义如下:
@Entity
public class MyEntity implements Entity {
@Id
private Long id; // Assume that it is auto-generated using a sequence.
@Column(name="field1")
private String field1;
private SecureString field2; //SecureString is a custom class
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
我的delete方法接受一个Entity。
@Override
public void delete(Entity baseEntity) {
em.remove(baseEntity); //em is entityManager
}
Run Code Online (Sandbox Code Playgroud)
每当调用delete方法时,我都希望在delete方法内包含三件事:
1)MyEntity
该类型的字段SecureString
2)DB中该特定字段的列名(该字段可能带有@Column
注释,也可能没有注释)
3)id
字段的值
请注意,在delete()
调用该方法时,我们不知道为哪个实体调用,可能是for的MyEntity1
, …