gpt4 book ai didi

java - Hibernate View 在应用程序和工作台中显示不同的结果

转载 作者:行者123 更新时间:2023-11-29 21:51:33 25 4
gpt4 key购买 nike

我正在开发一个 Java 应用程序,通过 hibernate 连接到 MySql 数据库。

我使用 Pojos 定义类并使用 Session 类连接到数据库。

问题在于下一个 View :

CREATE OR REPLACE VIEW INVENTARIO AS
SELECT
ID_ARTICULO,
ID_ESTRUCTURA,
ID_ESTRUCTURA_ORIGEN,
SUM(STOCK)STOCK,
STOCK_MIN,
NECESITA_REPO
FROM
HISTORICO_INVENTARIO
LEFT JOIN TIPOS_MOVIMIENTO
ON HISTORICO_INVENTARIO.ID_TIPO_MOV = TIPOS_MOVIMIENTO.ID_TIPO_MOV
GROUP BY ID_ARTICULO , ID_ESTRUCTURA , ID_ESTRUCTURA_ORIGEN , STOCK_MIN , NECESITA_REPO;

在 Java 中,我以这种方式映射 View :

<hibernate-mapping>
<class name="Pojos.Inventario" table="INVENTARIO">

<id name="id_articulo" type="string" column="ID_ARTICULO"/>

<property name="id_estructura" type="string" column="ID_ESTRUCTURA" />

<property name="id_estructura_origen" type="string" column="ID_ESTRUCTURA_ORIGEN" />

<property name="stock" type="float" column="STOCK" />

<property name="stock_min" type="float" column="STOCK_MIN" />

<property name="necesita_repo" type="string" column="NECESITA_REPO" />


</class>

我不得不说“id_articulo”字段不是 ID,但我必须选择一个,因为。

如果我在 MySql Workbench 中执行此 View ,我可以正确地得到结果。如果我在我的应用程序中执行相同的查询,我会得到不同的结果。

有谁知道为什么会发生这种情况吗?

提前致谢。

编辑:我尝试定义 XML,将 SQL 放入子选择标记中:

<class name="Pojos.Inventario">
<subselect>
SELECT
ID_ARTICULO,
ID_ESTRUCTURA,
ID_ESTRUCTURA_ORIGEN,
SUM(STOCK) STOCK,
STOCK_MIN,
NECESITA_REPO
FROM
HISTORICO_INVENTARIO
LEFT JOIN TIPOS_MOVIMIENTO
ON HISTORICO_INVENTARIO.ID_TIPO_MOV = TIPOS_MOVIMIENTO.ID_TIPO_MOV
GROUP BY ID_ARTICULO , ID_ESTRUCTURA , ID_ESTRUCTURA_ORIGEN , STOCK_MIN , NECESITA_REPO
</subselect>
<synchronize table="HISTORICO_INVENTARIO"/>
<synchronize table="TIPOS_MOVIMIENTO"/>
<id name="id_articulo" type="string" column="ID_ARTICULO"/>
<property name="id_estructura" type="string" column="ID_ESTRUCTURA" />

<property name="id_estructura_origen" type="string" column="ID_ESTRUCTURA_ORIGEN" />

<property name="stock" type="float" column="STOCK" />

<property name="stock_min" type="float" column="STOCK_MIN" />

<property name="necesita_repo" type="string" column="NECESITA_REPO" />
</class>

获取错误的结果集

最佳答案

将 hibernate show_sql 参数设置为 true。现在尝试在日志中捕获 sql 并尝试在 sql 工作台中运行它。

<property name="show_sql">true</property>

关于java - Hibernate View 在应用程序和工作台中显示不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584812/

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