【发布时间】:2015-08-12 07:21:26
【问题描述】:
我想知道使用@SqlResultSetMapping 和@ConstructorResult 有什么好处?使用 JPQL SELECT NEW SomeConstructor 是否更好,如果,为什么?
例如,这样更好吗:
@Table(name = "person")
@Entity
@SqlResultSetMappings(
@SqlResultSetMapping(name = "contactLess",
classes = @ConstructorResult(columns = {
@ColumnResult(name = "id", type = Long.class),
@ColumnResult(name = "full_name", type=String.class)
}, targetClass = Person.class)
)
)
@NamedNativeQueries({
@NamedNativeQuery(name = "Person.findWithoutContacts",
query = "SELECT c.id, c.full_name FROM person c ",
resultSetMapping = "contactLess", resultClass = Person.class)
})
比这个(在这种情况下是弹簧数据):
@Query("SELECT NEW Person(c.id, c.fullName) FROM Person c")
public List<Person> findAll();
【问题讨论】: