是否可以引用数据库表中的字段而不是实体中的字段?

时间:2013-07-07 02:46:49

标签: java hibernate jpa field

我有一个名为Person的实体,它引用了表person。 此Person实体没有person表中的所有字段。

例如,Person实体没有zipcode和email,它存在于person表中。

现在从查询中,我得到一个Person实体列表。我需要根据这些Person实体的值生成另一个查询。但是我需要使用zipcodeemail以及其他Person实体字段。这有可能吗? (我知道这是一个疯狂的想法)

是否可以将表格中的实体字段和字段(邮政编码和电子邮件)一起引用?

注意:由于某种原因,在Person实体中省略了两个字段zipcode和email,但需要在不同的查询中使用它们。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。您可以使用EntityManager createNativeQuery:

EntityManager em = // obtain em somehow..
String sql = "select id, name from person where zipcode = '10000' and email = 'bob@email.com";
List<Person> persons = em.createNativeQuery(sql, Person.class).getResultList();

请注意,只能选择映射到实体类的字段。在大多数情况下,这首先违背了使用JPA / Hibernate的目的。