我正在尝试使用@SqlResultSetMapping和@ConstructorResult将本机查询的结果映射到POJO。这是我的代码:
@SqlResultSetMapping(name="foo",
classes = {
@ConstructorResult(
targetClass = Bar.class,
columns = {
@ColumnResult(name = "barId", type = Long.class),
@ColumnResult(name = "barName", type = String.class),
@ColumnResult(name = "barTotal", type = Long.class)
})
})
public class Bar {
private Long barId;
private String barName;
private Long barTotal;
...
然后在我的DAO中:
Query query = em.createNativeQueryBar(QUERY, "foo");
... set some parameters ...
List<Bar> list = (List<Bar>) query.getResultList();
我已经读到JPA 2.1仅支持此功能,但这就是我正在使用的功能。这是我的依赖项:
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.1-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
我发现了一些资源,其中包括:jpa2.1中的@ConstructorResult映射。但是我仍然没有运气。
我想念什么?为什么找不到SqlResultSetMapping?
javax.persistence.PersistenceException: org.hibernate.MappingException: Unknown SqlResultSetMapping [foo]
@SqlResultSetMapping
注释 不应放在POJO上 。放在(任何)@Entity
课上。“ Unknown
SqlResultSetMapping [foo]”告诉您,JPA提供程序在名称“foo”下看不到任何映射。请参阅我的另一个答案以获取正确的示例
我正在尝试使用@SQLResultSetMapping和@ConstructorResult将本机查询的结果映射到POJO。下面是我的代码: 我找到了一些参考资料,其中包括JPA2.1中的@ConstructorResult映射。但我还是没有运气。 我错过了什么?为什么找不到SqlResultSetMapping?
我有一个用户类,有16个属性,比如名字,姓氏,出生日期,用户名,密码等...这些都存储在MySQL数据库中,当我想要检索用户时,我使用ResultSet。我想将每一列映射回用户属性,但我这样做的效率似乎非常低。例如,我正在做: 也就是说,我检索所有的列,然后通过将所有的列值插入用户构造函数来创建用户对象。 有人知道更快、更整洁的方法吗?
我需要通过连接3个不同的表来获取6列。我在entity类的顶部将它们声明为NamedNativequery,并且使用了create named query method form JPA。当我尝试fo获取结果集时,我得到的是数组对象列表,而不是POJO类型的对象列表。为了将结果集映射到外部POJO,我应该定义任何外部映射吗?
我在寻找更“改进的方法”来实现这一点,我有一种方法,从一个id中获取所有记录,然后“映射”到一个类中,我有大约200个“标记”要映射,这将是一个非常长的if链。。。例子:
我开始使用JOOQ和dvd租赁商店数据库aka sakila。基本上,我想找一个演员和他的角色(我创建的表)。到目前为止,我想到了这个: 我希望能够将演员及其角色提取到一个对象中:DTO。我找到了这篇文章https://arnaudroger.github.io/blog/2017/03/02/jooq-one-to-many-without-dto.html但我发现使用sfm的解决方案过于冗长,
我有一个Spring批处理应用程序,需要从4个表中进行选择。问题是,我无法使用关系,将编写Enricher来选择完整数据。 目前我有几个问题: 是否可以以简单的方式从JpaRepository映射非实体(POJO)。我看到了的示例。我正在寻找自动映射(也许是JPA,而不是Spring Data)。我可以用结果精确地制作列名,但它不起作用。 将POJO标记为实体没问题,但有问题。实体需要。这对我来说