我在这里寻求一些建议。我想知道是否有理由不这样做。众所周知,仅仅因为您可以做某事,并不意味着您应该做某事。
我正在处理的应用程序将 JPA 与现有表一起使用。在哪里可以,我们使用实体,但对于很多现有的 SQL,我们使用本机查询。在许多这样的查询中,我们没有返回实体,因此使用了本机查询。所以,我想知道是否有理由不这样做:
ResultSet rs = (ResultSet) em.createNativeQuery('NativeQueryString').getResultList();
while (rs.next()) {
person.setName(rs.getString('name'));
person.setHeight(rs.getString('height'));
}
我们现在做的是:
List results = em.createNativeQuery('NativeQueryString').getResultList();
for(Object result : results) {
Object [] items = (Object[]) result;
person.setName(items[0].toString);
person.setHeight(items[1].toString);
}
或者有没有更好的方法来使用 JPA 处理本机查询?