Tag: sqlresultsetmapping

JPA 2.1 ConstructorResult导致ClassCastException

我的结果集中的对象被强制转换为’Object’而不是我在@SQLResultSetMapping对象中指定的对象。 我正在尝试获取ConstructorResult的句柄,并创建了一个包含简单连接的查询,并尝试获取结果集并循环,但它将其打印出来以确保我正确。 然而,当我进入循环时,看起来应该是直截了当的不是。 当我声明结果列表时,它被转换为类型。 我逐步执行查询测试类,它成功运行查询并将其加载到结果中,但结果列表中的项目已键入“Object”而不是CommentInfoListItemDTO对象。 因此,当我进入循环时,它会遇到类强制转换exception。 为什么不将结果强制转换为CommentInfoListItemDTO对象? 特别是在@SQLResultSetMapping中具体说明。 代码发布在下面…我截断了一些列名称只是为了缩短它们。 如果它有助于将其添加回来让我知道。 public List getCommentTitleListByPersonId(BigInteger personId) { String queryString = “select c.article_id, ” ***[columns removed for brevity]*** + “c.person_id as comment_person_id, ” + “a.party_id as aticle_party_id ” + “from article_comment c ” + “join article a ” + “on a.article_id = c.article_id ” + “where c.person_id = […]

SqlResultSetMapping列为和实体

我真的很困惑,列结果集映射如何工作? 当我使用列而不是实体时,我映射的是什么? 看看这个例子…… Query q = em.createNativeQuery( “SELECT o.id AS order_id, ” + “o.quantity AS order_quantity, ” + “o.item AS order_item, ” + “i.name AS item_name, ” + “FROM Order o, Item i ” + “WHERE (order_quantity > 25) AND (order_item = i.id)”, “OrderResults”); @SqlResultSetMapping(name=”OrderResults”, entities={ @EntityResult(entityClass=com.acme.Order.class, fields={ @FieldResult(name=”id”, column=”order_id”), @FieldResult(name=”quantity”, column=”order_quantity”), @FieldResult(name=”item”, column=”order_item”)})}, columns={ […]