草庐IT

Hibernate

全部标签

java - 在 Hibernate 中持久化可序列化对象

我正在尝试保留包含一些大型Serializable类型的对象。我希望Hibernate自动生成我的DDL(使用Hibernate注释)。在大多数情况下,这是有效的,但是Hibernate在持久化这些类型时使用的默认数据库列类型是tinyblob。不幸的是,这会在尝试保留我的类时导致崩溃,因为这些类型不适合tinyblob的长度。但是,如果我手动设置类型(使用@Column(columnDefinition="longblob"),或者更便携的@Column(length=500000)),它工作正常。有什么方法可以使默认二进制类型longblob而不是tinyblob,这样我就不需要手

java - 即使我用@Column(unique=true) 标记,也需要放置@Index 吗?

即使我用@Column(unique=true)标记,也需要放置@Index吗?我有一个将经常用于检索实体的属性,并希望将其作为数据库的索引列。所以这个属性已经标上了@Column(unique=true),还需要加@Index吗?谢谢 最佳答案 大多数数据库确实使用UNIQUEINDEX实现了UNIQUE约束,但它们不是必需的,UNIQUE约束不一定给出你索引的好处。理论上,查询规划器不会考虑约束,而会考虑索引。也就是说,在MySQL的特殊情况下,似乎是aUNIQUEconstraintandaUNIQUEINDEXare"syn

java - Hibernate 在 EntityVerifyVersionProcess 中抛出 NullPointerException

在使用Hibernate的WebApplication中,我使用标准拦截器来创建和提交我的事务。但是,当提交事务时,我收到了一个NullPointerException。错误提示session管理不当,但我不知道为什么。我只能找到很少关于这个特定错误的信息。有人可以帮忙吗?堆栈跟踪:2011-04-2010:20:57,016["http-bio-8080"-exec-7]ERRORorg.hibernate.AssertionFailure-anassertionfailureoccured(thismayindicateabuginHibernate,butismorelikely

mysql - 是否可以使用 Hibernate 检测数据库中未使用的列?

我有一个包含一百个或更多表的MySQL数据库,它与Hibernate一起使用,并且我遇到了几个不再使用的列。也就是说,它们仍然存在于数据库中,但不存在于模型中。是否可以检测数据库中不再使用的那些列? 最佳答案 Hibernate中没有内置模式比较工具。我建议使用像HibernateToolsSchemaExport这样的东西从Hibernate模型生成DDL,然后使用mysqldump获取目标数据库的架构。然后使用您选择的架构比较工具来查找差异。 关于mysql-是否可以使用Hibern

java - JDBC-c3p0- hibernate -setAutocommit,有人可以帮我澄清一下吗

我的提问的基本根源来自于这种观察。当我使用Hibernate并进行任何查询时,我在MySQL日志中得到以下内容:SETautocommit=0insertintoSimpleNamedEntity(name,version)values(null,0)commitSETautocommit=1现在,我进行了一些研究(下面的参考文献会添加更多的内容,但看起来似乎不够好:-)),这似乎是一个相当经典的问题。我对各种级别的体系结构(mysql配置,jdbc,连接池,休眠)进行了许多测试,以更好地了解事物的工作方式,结果我变得更加困惑,所以这里有几个问题:有人可以确认自动提交是否对性能产生负面

mysql - MyISAM 方言生成错误的 DDL

我们使用MyISAM方言org.hibernate.dialect.MySQLMyISAMDialect在MySQL5.5数据库上使用3.6.9.Finalhibernate提供程序自动生成基于JPA2的DDL文件.ThecreateSQLfilegetsgeneratedasCREATETABLEt(iINT)type=MYISAM;insteadofCREATETABLEt(iINT)ENGINE=MYISAM;导致建表失败。注意:这在5.1和更低版本中运行良好。我应该使用哪个hibernate提供程序来修复此问题。 最佳答案

mysql - jpa原生查询,select同一张表两次问题(hibernate实现)

有一个要求我应该使用jpanative查询(因为jpa不支持timestampdiff函数)。另外我应该选择同一张表两次,例如:我有表:个人、任务等我使用的native查询是:“selectemp.name,tsk.name,app.name,fromIndividualemp,Tasktsk,Individualappwhere......”我想要的预期数据是:“Tom,task1,Jack”,但是给定此nativesql查询的结果数据是“Jack,task1,Jack”。这意味着app.name会覆盖emp.name。如果我想获得正确的结果,我必须使用如下查询:“selectemp

java - Hibernate saveOrUpdate,更新需要原始行的所有字段

我正在使用mysql和hibernate在表中插入和更新行。我使用saveOrUpdate调用。现在,当我尝试更新表中的一行时,出现异常。异常指出我的列requestTime不能为空。显然这是真的,因为我已将列属性设置为NotNull。我可以添加行。但是当用另外2列的值更新它时,我得到了这个异常。我假设在更新时,我需要从表中读取行,然后更新整行。真的吗?我有点希望hibernatesaveOrUpdate会为我做这件事。因此,当我插入新行时,我有一个对象具有所有列的setter/getter。但是当我更新时,我有一个只有主键和新列的getter的对象。TransactiontxD;Se

java - 使用 C3P0 和 Hibernate/Spring 创建的许多线程

我在Linux环境下使用Tomcat做一个在JavaWeb应用程序中合并Hibernate和Spring的项目。由于Mysql8小时超时问题,我们想使用C3P0来管理一个与我们Mysql数据库的连接池。但是当我们使用它时,我们会创建许多线程。我想出来了,因为我在每个请求上都打印了所有这些请求,并显示了内存状态,显示了增加的内存和那种线程:name:C3P0PooledConnectionPoolManager[identityToken->1hged7o8r13kpj7n1h3ycia|39c446]-HelperThread-#0daemon:truegroup!maingroupP

java - 从多个表中选择 count(*)

亲爱的friend们,我需要从一个具有不同条件的表中获取计数(*)。我正在使用hibernate和spring。我正在使用下面的查询。"select"+"(selectcount(*)fromenquirywherebusiness_id="+busid+")ASallEnqCount,"+"(selectcount(*)fromenquirywherestatus='"+Constants.ENQ_FALLOWUP+"'andus.business_id="+busid+")ASfollowupCount,"+"(selectcount(*)fromenquirywherestatu