小编Ama*_*man的帖子

如何获取JPA实体的列名

我所有的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, …

java reflection hibernate jpa java-ee

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

hibernate ×1

java ×1

java-ee ×1

jpa ×1

reflection ×1