gpt4 book ai didi

java - OneToMany 单向关系后从数据库检索数据

转载 作者:行者123 更新时间:2023-11-30 05:20:20 24 4
gpt4 key购买 nike

所以我得到了这个项目,我在数据库中存储一个 "Categorie" 类,与 "SousCategorie" 类具有一对多关系,该类工作正常,并且创建了一个名为的表“categorie_sous_categories”

当我厌倦了从categorie_sous_categories表中检索数据时,发生了一个错误,该类被映射为hibernate创建的表,但我没有在程序中声明该类我的程序结构: enter image description here异常日志:

Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: Categorie_sous_categories is not mapped [select categorie_matricule from categorie_sous_categories]

我尝试运行的代码:

SessionFactory sessionFactory = new Configuration().
configure().buildSessionFactory();


Session session = sessionFactory.openSession();
session.beginTransaction();

List<String> categorieList = session.createQuery("select categorie_matricule from categorie_sous_categories").list();
for (String produit:categorieList){
System.out.println(produit);
}

session.getTransaction().commit();
session.close();

我尝试从中检索数据的表: enter image description here

我的 hibernate.cfg.xml 文件:

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>

<property name="hibernate.connection.url">jdbc:postgresql://localhost:5432/DevIT</property> <!-- BD Mane -->
<property name="connection.driver_class">org.postgresql.Driver</property> <!-- DB Driver -->
<property name="connection.username">postgres</property> <!-- DB User -->
<property name="connection.password">test123</property> <!-- DB Password -->

<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property> <!-- DB Dialect -->
<property name="hbm2ddl.auto">update</property> <!-- create / create-drop / update -->

<property name="show_sql">true</property> <!-- Show SQL in console -->
<property name="format_sql">true</property> <!-- Show SQL formatted -->
<property name="hibernate.current_session_context_class">thread</property>
<mapping class="CoreApp.Categorie"/>
<mapping class="CoreApp.SousCategorie"/>
<mapping class="CoreApp.Produit"/>
</session-factory>
</hibernate-configuration>

最佳答案

尝试从类别中选择categorie_matricule,它将返回预期的结果。另外,异常(exception)是不言自明的,表 categorie_sous_categories 未与任何 Entity/Class 映射,它是一个映射表。并且不应直接获取它,您想要在此表上运行的任何查询都可以更改 - 其中使用原始类 Categorie 和 SousCategorie

关于java - OneToMany 单向关系后从数据库检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59694361/

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