hibernate 相关问题

Hibernate是Java语言的对象关系映射(ORM)库,使开发人员能够以远远超出对象/关系映射的方式在其应用程序中使用POJO样式的域模型。

升级到 6.6.3 后出现 Hibernate StaleObjectStateException:行已被另一个事务更新或删除,或者未保存的值映射不正确

我有两个 PostgreSQL 表:一个用于产品,另一个用于包含 SEO 详细信息的图库图像。以下是架构: 如果 test_product 不存在则创建表 ( id bigserial 不为空,

回答 1 投票 0

JPQL 到 SQL 的转换没有任何意义

我有三个实体,卖家(Vendor),商店(Loja)和特许经营(Franquia),关系描述如下: 1 - 卖家到商店:多对多 2 - 商店到特许经营:多对一 下面...

回答 1 投票 0

我正在使用 Spring Boot 创建一个应用程序,当我到达终点时我的应用程序正在运行,但它显示的是空数据

我正在使用 H2 数据库,并且在运行应用程序后,我通过运行 SQL 选择查询来检查 H2 数据库是否存在数据,其中我获取了包含所有数据的数据表...

回答 1 投票 0

我不知道如何解决的 Hibernate 池警告

当我在本地运行 spring boot 时,org.hibernate.orm.connections.pooling 会记录出一堆未定义的值。 任何人都可以给我属性键来解决这些未定义的值。我试过了...

回答 1 投票 0

无法避免使用 Spring Boot 和 Logback 将休眠日志记录 SQL 到控制台

尽管我使用 Logback 配置了 Hibernate 的特定日志记录,但我的 Spring Boot 应用程序仍然在控制台中显示 Hibernate 查询,如下所示: 尽管我使用 Logback 配置了 Hibernate 的特定日志记录,但我的 Spring Boot 应用程序仍然在控制台中显示 Hibernate 查询,如下所示: <appender name="HIBERNATE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOGDIR}/hibernate.log</file> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern> </encoder> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOGDIR}/hibernate.log.%d</fileNamePattern> </rollingPolicy> </appender> <logger name="org.hibernate" additivity="false"> <appender-ref ref="HIBERNATE"/> </logger> <logger name="org.hibernate.SQL" additivity="false"> <appender-ref ref="HIBERNATE"/> </logger> <logger name="org.hibernate.type.descriptor.sql" additivity="false"> <appender-ref ref="HIBERNATE"/> </logger> 它确实将 Hibernate 的日志(包括查询)发送到文件 hibernate.log。但我也想避免控制台中的查询,我认为这种配置应该发生这种情况。 我错过了什么? 我只是想分享一下,我刚刚注意到还有另一个设置可能会导致 org.hibernate.SQL 在 Spring Boot JUnit 测试中进行调试,尽管您可能已经设置了 spring.jpa.show-sql=false 和 spring.jpa.properties.hibernate.show_sql=false ... 如果你设置了 debug=true 在您的 Spring 应用程序*.properties 文件中! 将此设置为 true 将覆盖 show-sql 设置并将其设置为 true。 Brgds 如果将 hibernate.show_sql 设置为 true,Hibernate 将简单地将 SQL 语句打印到控制台(不要与 org.hibernate.SQL 下的日志记录混淆)。 SqlStatementLogger 负责记录 SQL 语句,其 logStatement 如下所示: public void logStatement(String statement, Formatter formatter) { if ( format ) { if ( logToStdout || LOG.isDebugEnabled() ) { statement = formatter.format( statement ); } } LOG.debug( statement ); if ( logToStdout ) { System.out.println( "Hibernate: " + statement ); } } 因此,如果您不想在控制台上看到查询,只需将其设置为 hibernate.show_sql 来禁用 false 或将其完全删除即可。在 Spring Boot 中,只需将其添加到您的 application.properties: spring.jpa.show-sql=false 您基本上需要将 2 个属性设置为 false。 如果您使用 Spring boot ,则在 Application.properties 中进行如下设置 spring.jpa.properties.hibernate.generate_statistics=false spring.jpa.properties.hibernate.show_sql=false 如果您使用 hibernate.cfg.xml,则按如下方式设置 <property name="hibernate.generate_statistics">false</property> <property name="show_sql">false</property> 如果有人尝试了上述所有方法但仍然存在问题,请尝试设置属性: logging.level.org.hibernate.SQL=OFF 我的应用程序是一个 spring-boot 的应用程序, 由于某种原因,在我的例子中,属性“spring.jpa.show-sql=false”不起作用。 我可以看到带有绑定值的 sql 继续在控制台/日志中打印查询。 通过将根级别更改为错误即可解决,如下所示 <root level="ERROR"> <appender-ref ref="STDOUT"/> </root> 虽然我们将根目录中的日志级别更改为错误,但我们仍然可以使用如下所示的单独记录器在信息模式下打印包/应用程序日志 <logger name="com.application.code" level="INFO"> <appender-ref ref="FILE"/> <appender-ref ref="ERR_FILE"/> </logger> 放在这里,这样可能会对某人有所帮助。 谢谢 如果您使用DataJpaTest,您需要设置@DataJpaTest(showSql = false),因为它会覆盖application.properties

回答 6 投票 0

HQL Hibernate 6 ORM 删除语句上的查询类类型

我正在将 Spring Boot 应用程序 (spring-boot-starter-parent) 从 2.6.1 升级到 3.4.1。该升级的一部分与 hibernate 5 到 6 的升级有关,特别是 hibernate core 6.6.4.Final 与

回答 1 投票 0

使用 spring-boot-devtools 重新启动应用程序后,EntityManagerFactory 关闭

我在 StackOverflow 中查看了许多问答,但没有一个能解决我的问题或与我的情况不符。例如以下问题。 重新加载页面时 EntityManagerFactory 关闭

回答 3 投票 0

在使用 Hibernate 和 Scala 时如何修复“不明确的重载”?

我已经开始使用Scala+Akka编写一个Web服务器,并将其与Hibernate+MySQL结合用于数据存储。尽管花了几天时间将 Java+Hibernate 教程翻译成 Scala,但我还是得到了一些东西......

回答 1 投票 0

本机递归 HQL 查询上的 Hibernate-ORM 6 NonUniqueDiscoveredSqlAliasException

我正在将 Spring Boot 应用程序 (spring-boot-starter-parent) 从 2.6.1 升级到 3.4.1。 该升级的一部分与 hibernate 5 到 6 的升级有关,特别是 hibernate core 6.6.4.Final 与

回答 1 投票 0

Hibernate TimeZone 规范化问题:MySQL 中特定日期时间条目的偏移量不正确

我在使用 MySQL Hibernate 时遇到了一个奇怪的问题,我正在尝试将现有数据库与新的 Spring Boot 应用程序一起使用,存储日期的列的类型为 DateTime。 这就是我所做的: 具体...

回答 1 投票 0

spring.jpa.properties.javax.persistence.query.timeout 不适用于 PostgreSQL

我希望有一个选项可以将所有 Spring jpa 查询限制在一定的时间限制内。如果查询花费的时间超过指定的限制,则应取消该查询。据我所知,这是可以实现的...

回答 2 投票 0

Hibernate连接和JDBC连接区别

有件事我不明白: Hibernate 是数据库管理器而不仅仅是 ORM 吗? 我的问题:我有 SpringBootApplication 并使用 hibernate 连接到数据库和 ORM 方面。在我心里,

回答 1 投票 0

如何在 Spring 存储库中使用动态表名

我有一个像这样的存储库; @NoRepositoryBean @成分 公共接口 MyEntityRepository 扩展 ListCrudRepository { } 这个存储库有很多

回答 1 投票 0

org.hibernate.MappingException:无法获取 org.hibernate.persister.entity.SingleTableEntityPersister 的构造函数

我实际上是休眠新手,并尝试设置 1 类供应商。 以下是一些细节。 休眠配置文件 我实际上是休眠新手,并尝试设置 1 类供应商。 这是一些细节。 hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/transaksi?zeroDateTimeBehavior=convertToNull</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.query.factory_class">org.hibernate.hql.internal.classic.ClassicQueryTranslatorFactory</property> <property name="hibernate.format_sql">true</property> <mapping resource="Pojo/Supplier.hbm.xml"/> </session-factory> </hibernate-configuration> hibernate.reveng.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-reverse-engineering PUBLIC "-//Hibernate/Hibernate Reverse Engineering DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-reverse-engineering-3.0.dtd"> <hibernate-reverse-engineering> <schema-selection match-catalog="transaksi"/> <table-filter match-name="supplier"/> </hibernate-reverse-engineering> 供应商.hbm.xml <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- Generated Jun 1, 2016 9:01:44 PM by Hibernate Tools 4.3.1 --> <hibernate-mapping> <class name="Pojo.Supplier" table="supplier" catalog="transaksi" optimistic-lock="version"> <id name="kdSup" type="string"> <column name="kd_sup" length="25" /> <generator class="assigned" /> </id> <property name="nmSup" type="string"> <column name="nm_sup" length="25" not-null="true" /> </property> <property name="nmBrg" type="string"> <column name="nm_brg" length="25" not-null="true" /> </property> <property name="hrg" type="int"> <column name="hrg" not-null="true" /> </property> <property name="jml" type="int"> <column name="jml" not-null="true" /> </property> <property name="tgl" type="date"> <column name="tgl" length="10" not-null="true" /> </property> <property name="FStatus" type="int"> <column name="f_status" not-null="true" /> </property> <property name="FUpdate" type="int"> <column name="f_update" not-null="true" /> </property> </class> </hibernate-mapping> 供应商.java package Pojo; import java.util.Date; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; @Entity @Table(name ="supplier") public class Supplier implements java.io.Serializable { @Id private String kdSup; private String nmSup; private String nmBrg; private String hrg; private String jml; private Date tgl; private String FStatus; private String FUpdate; public Supplier() { } public Supplier(String kdSup, String nmSup, String nmBrg, String hrg, String jml, Date tgl, String FStatus, String FUpdate) { this.kdSup = kdSup; this.nmSup = nmSup; this.nmBrg = nmBrg; this.hrg = hrg; this.jml = jml; this.tgl = tgl; this.FStatus = FStatus; this.FUpdate = FUpdate; } public String getKdSup() { return this.kdSup; } public void setKdSup(String kdSup) { this.kdSup = kdSup; } public String getNmSup() { return this.nmSup; } public void setNmSup(String nmSup) { this.nmSup = nmSup; } public String getNmBrg() { return this.nmBrg; } public void setNmBrg(String nmBrg) { this.nmBrg = nmBrg; } public String getHrg() { return this.hrg; } public void setHrg(String hrg) { this.hrg = hrg; } public String getJml() { return this.jml; } public void setJml(String jml) { this.jml = jml; } public Date getTgl() { return this.tgl; } public void setTgl(Date tgl) { this.tgl = tgl; } public String getFStatus() { return this.FStatus; } public void setFStatus(String FStatus) { this.FStatus = FStatus; } public String getFUpdate() { return this.FUpdate; } public void setFUpdate(String FUpdate) { this.FUpdate = FUpdate; } } SupplierGui.java package Gui; import Pojo.Supplier; import java.util.List; public interface SupplierGui { List<Supplier> listSupplier(); } SupplierDAO.java package DAO; import Pojo.Supplier; import Gui.SupplierGui; import Util.HibernateUtil; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import javax.persistence.EntityManager; import javax.swing.JOptionPane; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.Criteria; import org.hibernate.Query; public class SupplierDAO implements SupplierGui { private SessionFactory sessionFactory; public SupplierDAO(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } @Override public List<Supplier> listSupplier() { Session session = sessionFactory.openSession(); session.beginTransaction(); List list = new ArrayList(); try { Query query = session.createQuery("from supplier where f_status = '1'"); list = query.list(); session.getTransaction().commit(); } catch (IllegalStateException ex) { session.getTransaction().rollback(); JOptionPane.showMessageDialog(null, ex); } return list; } } 这是主课... frmSupplier.java package Tampilan; import java.sql.*; import java.text.ParseException; import javax.swing.*; import java.lang.*; import java.awt.*; import javax.swing.table.DefaultTableModel; import java.text.SimpleDateFormat; import java.util.logging.Level; import java.util.logging.Logger; import java.util.Date; import Pojo.Supplier; import Gui.SupplierGui; import java.util.ArrayList; import java.util.List; import javax.swing.ImageIcon; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; import Util.HibernateUtil; import Util.SupplierTableModel; import java.util.Calendar; public class frmSupplier extends javax.swing.JFrame { private SupplierGui supplierInters = HibernateUtil.getSupplier(); private Supplier sup; private List listSuplierAll = new ArrayList(); String tanggal; public frmSupplier() { initComponents(); BacaTabelSupplier(); } private void BacaTabelSupplier(){ try{ listSuplierAll = supplierInters.listSupplier(); } catch (Exception ex) { JOptionPane.showMessageDialog(null, ex); } String[][] data1 = new String[listSuplierAll.size()][6]; for (int x = 0; x < listSuplierAll.size(); x++) { Supplier tm1 = (Supplier) listSuplierAll.get(x); data1[x][0] = tm1.getKdSup(); data1[x][1] = tm1.getNmSup(); data1[x][2] = tm1.getNmBrg(); data1[x][3] = tm1.getHrg(); data1[x][4] = tm1.getJml(); data1[x][5] = tm1.getTgl().toString(); } String[] label = {"Kode Supplier","Nama Supplier","Nama Barang","Harga Satuan", "Jumlah","Tanggal"}; DefaultTableModel model = new DefaultTableModel(data1, label); tabel.setModel(model); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new frmSupplier().setVisible(true); } }); } } HibernateUtil.java package Util; import DAO.SupplierDAO; import Gui.SupplierGui; import org.hibernate.cfg.AnnotationConfiguration; import org.hibernate.SessionFactory; public class HibernateUtil { private static final SessionFactory sessionFactory; private static final SupplierGui supplierInter; static { try{ sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); supplierInter = new SupplierDAO(sessionFactory); } catch (Throwable ex) { System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static SupplierGui getSupplier() { return supplierInter; } } 这是我的问题。 org.hibernate.MappingException:无法获取 org.hibernate.persister.entity.SingleTableEntityPersister 的构造函数 Initial SessionFactory creation failed.org.hibernate.MappingException: Could not get constructor for org.hibernate.persister.entity.SingleTableEntityPersister Exception in thread "AWT-EventQueue-0" java.lang.ExceptionInInitializerError at Util.HibernateUtil.<clinit>(HibernateUtil.java:33) 这是我的结构包 我真的不知道他们的代码哪里有错误,有人可以帮助我吗?我是尝试休眠的新手,如果你想帮助我,我真的很高兴。 谢谢=) 我认为你可以通过将此行添加到 hibernate.cfg.xml 来解决 <property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> 解决此问题:无法获取 org.hibernate.persister.entity.SingleTableEntityPersister 的构造函数。 前往: YOUR_PROJECT/项目文件/pom.xml。去pom.xml检查依赖关系后,还要检查MySQL和Hibernate的版本。将版本更新到最新版本。这对我有用。 示例: <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>5.6.14.Final</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.33</version> </dependency>

回答 2 投票 0

Hibernate 中的自定义 UUID 生成器

我有一辆班级车: @盖特 @塞特 @实体 @Table(名称=“汽车”,架构=“my_schema”) @Builder // 和其他一些注释... 公共课汽车{ @NotNull @ID @Column(columnDefint...

回答 2 投票 0

如何使用Spring Data jpa的OneToMany属性和FetchType Lazy配置来获取数据

有人可以帮忙解决这个问题吗?我有一个名为 Staff 的实体,其属性 adminStaffResponses 将为 OneToMany 映射创建一个单独的表。我故意配置的...

回答 1 投票 0

为什么 findById 使用 Hibernate Reactive 和 Panache 返回过时的数据?

我正在使用 Quarkus、Hibernate Reactive 和 Panache Reactive,我注意到更新数据库中的实体时出现意外行为。我有两个版本的修改 Workpl 的方法...

回答 1 投票 0

Jackson 注解在 Spring Boot 中不起作用

在管理自引用 @ManyToMany 关系时,我在 User 类中遇到了 Jackson 注释的挑战。尽管应用了适当的注释,杰克逊还是未能...

回答 1 投票 0

如何在 Hibernate 6.3 中使用 PostgreSQLEnumType

我正在使用 spring boot v3.2.0 和 hibernate v6.3.1 并尝试对我的枚举字段使用 JdbcType 注释: 枚举状态{ 草稿、新、进行中、已完成、已拒绝; } @Enumerated(EnumType.ST...

回答 1 投票 0

如何过滤Hibernate fetch? Spring Data JPA,与新实体的ManyToMany关系,JPA规范

我正在学习 Spring Data JPA,我正在尝试在类 Account 和类 Authority 之间建立多对多关系。我还想追踪权限何时被撤销的历史记录。数据库

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.