gpt4 book ai didi

java - SqlResultSetMapping 列和实体

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:56:11 24 4
gpt4 key购买 nike

我真的很困惑,列结果集映射是如何工作的?当我使用列而不是实体时,我在映射什么?看看这个例子...

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={
@ColumnResult(name="item_name")}
)

我能理解他在这里试图做什么,实体结果将是他想要的结果集,字段将尝试将字段映射到别名,列结果到底在做什么?它看起来不像是映射到任何东西。

最佳答案

您将结果集中的 4 个字段映射到 2 个 Java 类:第一个类是订单实体,第二个是(可能)应包含“item_name”数据库字段的字符串。

DB:                         Java
--- ----
order_id ---> \
order_quantity ---> Order entity
order_item ---> /
item_name ---> String

为了读取查询结果:

for (Object[] record : query.getResultList()) {
Order order = (Order)record[0];
String itemName = (String)record[1];
}

关于java - SqlResultSetMapping 列和实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11452586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com