我正在尝试检索包含引用指定实体的关系的所有实体的列表。
“角色”实体:
@Entity
@Table(name="Role")
@Access(AccessType.PROPERTY)
public class Role implements Serializable {
private String description;
private Long roleId;
@Column(name = "role_id")
@Id
public Long getRoleId() {}
@Column(name = "description")
public String getDescrition() {}
}
“用户”实体:
@Entity
@Table(name="users")
@Access(AccessType.PROPERTY)
public class User implements Serializable {
private Long userId;
private String name;
private Role role;
@Column(name = "user_id")
@Id
public Long getUserId() {}
@ManyToOne()
JoinColumn(name="role_id")
public Role getRole() {}
public String getName() {}
}
“群组”实体:
@Entity
@Table(name="groups")
@Access(AccessType.PROPERTY)
public class User implements Serializable {
private Long groupId;
private String description;
private Role role;
@Column(name = "group_id")
@Id
public Long getGroupId() {}
@ManyToOne()
JoinColumn(name="role_id")
public Role getRole() {}
public String getDescription() {}
}
我需要一个像这样的作品:
List<Class<?>> entities = getEntityReferences(Role.class);
foreach (Class<?> entity : entities )
System.out.println(entity.getName());
输出结果为:
User
Group
我认为JPA使用类似这样的bean验证或级联机制,但我找不到一种简单的方法来实现它。
我现在找到的唯一方法是遍历所有实体的所有注释(由"entityManagerFactory.getMetamodel().getEntities()"
返回)以查找关系(ManyToOne
,OneToOne
等。)。这看起来有点单调乏味,我相信有更好的方法可以做到这一点......
谢谢大家...