草庐IT

hibernate-validator

全部标签

java - Hibernate 对象映射导致 SQL 错误 (errno : 150) with Liquibase

我面临以下问题:对于我的Java项目,我使用SpringFramework、Maven和用于数据库管理的Hibernate3.6以及用于变更管理的Liquibase。现在我面临一个困扰我的问题。它与应从Hibernate创建的外键约束有关。2类具有具有关系的对象实体。观看以下代码:@Entity@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)publicclassSearchSingleextendsOfferSearchimplementsComparable,OfferSingle{privatestaticfinallo

mysql - 具有分区 MySQL 表的 Hibernate 映射

我有一个MySQL数据库,其中(大多数)表在TENANT_ID列上分区。每个表还有一个使用AUTO_INCREMENT的ID字段,因此在所有分区中都是唯一的。数据库主键是一个组合(ID,TENANT_ID),因为MySQL要求主键有分区列部分。在我的Java代码中,我只映射了带有@Id注释的ID列。这主要是为了避免Hibernate中围绕复合键的许多问题。我现在面临的问题是,Hibernate生成的大多数SQL语句只使用ID列。例如,由Hibernate生成的UPDATE语句将读作UPDATEobjectSETvalue=?WHEREID=?但是,由于此查询排除了TENANT_ID上的

java - 大多数类似 MySQL 的与 hibernate 兼容的内存数据库?

对于我正在从事的项目(Spring/struts2/hibernate),我们决定使用h2对生产商店的MySQL进行单元测试,并在liquibase中管理该方案,这是非常标准的票价,但我们仍然存在这个问题遇到的是h2和MySQL在很多方面都不同,例如它们如何处理时间戳和触发器。已经到了我开始后悔使用h2的地步,因为不匹配导致的额外麻烦开始超过它的好处。我的问题是,是否还有其他内存/本地文件数据库的行为更像MySQL?显然,对于集成测试,我们仍将使用MySQL,但能够进行单元测试,而无需将liquibase文件变成一个巨大的hack,也不必确保本地MySQL数据库正在运行,这会很好。

java - Stackoverflow 和 Hibernate 使用 sql IN (id, id, id, id..id)

我收到下面的错误,说有堆栈溢出。发生这种情况是因为带有IN(id,id,id...id)的SQL语句有大量参数。有没有什么办法解决这一问题?这是在我使用Eclipse的本地环境中发生的。JPA@Query(value="SELECTpFROMPendingCourseRegistrationpWHEREp.sisIdIN?1ANDp.testId=?2")ListfindPendingCourseRegistrationInSisIdsAndTestId(ListsisIds,LongtestID);错误java.lang.StackOverflowError:nullatjava.l

mysql - 将 SQL 查询转换为 Hibernate 查询

我需要帮助将一些sql转换为hibernatesql。SQL:Stringsql="selecttime,hour(time)ashour,minute(time)asminute"+"fromdbwheretime>=DATE_ADD(now(),INTERVAL-24HOUR)"+"groupby2orderbytimeLIMIT500";我使用SQLQuery添加标量。我为HQL尝试了这个:Stringhql="selecttime,hour(time),minute(time)fromdbasO"+"whereO.time>=:timegroupby2orderbyO.time

java - 使用 Hibernate 管理 MySQL 分区

我们目前正在为我们的一个小型应用程序评估MySQL分区的使用。该应用程序基本上只是位于消息队列的末尾,并使用Hibernate将我们的API请求(包括时间戳)记录到数据库中。不幸的是,我们收到了很多请求,查询数据库变得非常慢。我们想要做的是按时间戳(每月)对表进行分区,因为我们的常规查询模式类似于“在时间A和B之间获取某些请求”。如果A和B连续两个月,这在大多数情况下都是正确的,那么这只会命中两个分区。由于必须手动创建MySQL的范围分区,我想将此维护任务添加到我们的Java应用程序中,使其可以自动完成。这个想法是这样的:有一个定期运行的实用线程(使用ScheduledExecutor

mysql - 如何在 Hibernate 中使用零日期 ("0000-00-00")?

我有一个MySql表,该表的默认值是零(“0000-00-00”)(字段不能为空,我无法更改表结构)。Hibernate不喜欢零日期并在读取或保存期间抛出异常。我设法通过设置MySql连接设置“zeroDateTimeBehavior=convertToNull”使其读取记录,该设置在检索记录时将零日期转换为空值。在我尝试保存具有空日期的记录之前一切正常-它抛出日期不能为空的异常。所以问题是-如何通过Hibernate保存记录以便日期在表中显示为零?谢谢。 最佳答案 我会尝试添加一个Hibernate拦截器(API、Doc)并尝试在

mysql - Hibernate 在 MySQL 上发出太多查询

我在Spring使用hibernate3.0和Mysql5。我在JBOSS中配置了JNDI数据源并在应用程序上下文中使用它。我的问题是Hibernate平均每秒向数据库发出466.4次查询,而网站上几乎没有任何负载。ApplicationContext.xml片段是我在Java级别使用JTA事务。欢迎任何帮助。 最佳答案 其中一个应该是这样您收到/处理的请求太多-在开发中不太可能。您遇到了N+1选择条件-很常见。请发布您的域模型和正在执行的查询。 关于mysql-Hibernate在My

mysql - 告诉 Hibernate 的 hbm2ddl 为 @Enumerated 注释字段添加 MySQL 枚举列

我正在使用hbm2ddl和类似于以下的Java代码创建数据库表:@EntitypublicclassFilter{publicenumType{TypeA,TypeB;}@Enumerated(EnumType.STRING)privateTypetype;}它工作正常,但是对于“类型”,创建了一个VARCHAR列,即DDL代码如下所示:CREATETABLEIFNOTEXISTS`filter`(`type`varchar(255)DEFAULTNULL)但我想要的是:CREATETABLEIFNOTEXISTS`filter`(`type`enum('TypeA','TypeB')

java - 使用 Hibernate 的问题 - 未找到 JDBC 驱动程序类 : com. mysql.jdbc.Driver

在使用hibernate连接到MySQLDB并添加数据时,我遇到了一个非常奇怪的问题。这是我得到的错误:JDBCDriverclassnotfound:com.mysql.jdbc.Driver这就是我的hibernate.cfg.xml的样子com.mysql.jdbc.Driverjdbc:mysql://localhost:3306/fpa-webapporg.hibernate.dialect.MySQLInnoDBDialectrootupdatetruetrue我不明白为什么在导航到应用程序时会看到500错误;它说找不到驱动程序。HTTPERROR500Problemacc