当前位置: 首页 > 面试题库 >

获取未在Hibernate中映射的bean类型的列表

袁炳
2023-03-14
问题内容

我不知道在hibernate状态下是否有可能。

我可以使用Hibernate的getSession()获得一个Bean类型(尚未映射)的列表吗?

我正在尝试从查询中获取两个值。这些值来自差异表。我已经完成查询,但是当我尝试执行getSession时,它说未映射我的班级。我没有映射它,因为没有要映射的表。我创建了一个名为ObjetivoAdapter的类,其中包含两个字符串(需要在列表中输入的信息)。我也创建了该类,因为我需要我的信息列表。

这些是我从中获得信息的表:

表:producto。列:描述。列:codigo_barras

表:objetivo。列:codigo_barras_objetivo(带有表producto中的codigo_barras的FK)。列:promocion_id(具有表promocion的ID的FK)

表:促销列:id

这是我的类bean ObjetivoAdapter:

public class ObjetivoAdapter {

    private String nombreProducto;
    private String codigoBarrasObjetivo;

    public void ObjetivoAdapter(String nombreProducto, String codigoBarrasObjetivo) {
        this.nombreProducto = nombreProducto;
        this.codigoBarrasObjetivo = codigoBarrasObjetivo;
    }

    public String getCodigoBarrasObjetivo() {
        return codigoBarrasObjetivo;
    }

    public void setCodigoBarrasObjetivo(String codigoBarrasObjetivo) {
        this.codigoBarrasObjetivo = codigoBarrasObjetivo;
    }

    public String getNombreProducto() {
        return nombreProducto;
    }

    public void setNombreProducto(String nombreProducto) {
        this.nombreProducto = nombreProducto;
    }

}

这是我的查询:

public List<ObjetivoAdapter> getInfo(String codBarras) {
        String sql = "SELECT o.codigo_barras_objetivo, p.descripcion_corta FROM objetivo o "
                + "INNER JOIN producto p ON o.codigo_barras_objetivo = p.codigo_barras "
                + "INNER JOIN promocion pr ON o.promocion_id = pr.id "
                + "WHERE codigo_barras = ' " + codBarras + "';";
        List<ObjetivoAdapter> listaOA = getSession().createSQLQuery(sql).addEntity(ObjetivoAdapter.class).list();
        return listaOA;
    }

任何帮助将不胜感激。


问题答案:

使用setResultTransformer(AliasToBeanResultTransformer)代替,addEntity()一切都应该没问题



 类似资料:
  • 帮助我解决我的问题...当我使用方法时,我在映射方面遇到了问题。 型号:Bus Bus\U id pk号 驱动程序driver_idpk名称 巴士司机bus_idfkdriver_idfk 巴士 驾驶员 1级-驾驶员: 2类-总线公共类BusDAOImpl实现BusDAO{ 我的映射: 主类: } hibernate.cfg 工厂 HibernateUtil: 错误文本:

  • 问题内容: 为了验证我收到的数据,我需要确保该长度不会超过数据库列的长度。现在,所有长度信息都存储在Hibernate映射文件中,是否可以通过编程方式访问此信息? 问题答案: 您可以实现,但这并不容易。您可能想要在启动时执行以下操作,并存储值的静态缓存。有很多特殊情况要处理(继承等),但它应适用于简单的单列映射。我可能遗漏了一些instanceof和null检查。

  • 问题内容: 如何访问模型的Hibernate映射以找出属性的列名? 列名未在映射中指定,因此Hibernate自动生成它-我想创建一个包含此列名的本机SQL语句。 问题答案: 感谢Jherico,我发现了如何做到这一点:

  • 我在oracle中有一个列(),类型为,希望使用Hibernate选择此列。我将hibernate映射文件映射为.. 并将VO中的timestamp属性作为Double类型。当我选择一个记录时,时间戳总是返回为NULL。存储在此列中的数据的一个示例是:

  • 我正在尝试从中获取JSONhttps://jsonplaceholder.typicode.com/photos/但获取类似未处理异常的错误:类型“List”不是类型“Map”的子类型 有办法吗? 这是我的代码。 主要的飞奔 影印机。飞奔 image_list.dart 调试控制台: 未处理的异常:类型列表不是类型映射的子类型

  • 我有一个带有列的表,类型是bit(24)。我尝试使用字符串,当我尝试获取这个对象时,它会很好地映射,但当我尝试保存它时,Hibernate抛出异常: 我知道如果有点(1),我可以使用布尔值,但我不知道在我的情况下应该怎么做。 提前谢谢!