草庐IT

hibernate-validator

全部标签

java - hibernate - 如何在 mysql 和 oracle 数据库中设置自动增量?

我在我的springMVC项目中使用hibernate和MySQL数据库。我已经使用@GeneratedValue注释在我的id字段上设置自动增量。所以我所有的实体都有这段代码,一切都按预期工作:@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="id")privateIntegerid;publicIntegergetId(){returnid;}publicvoidsetId(Integerid){this.id=id;}这时候想换成Oracle数据库。现在,我有两个问题:1.在oracle中设置自增字

java - Hibernate:对 MySQL 使用反引号,但对 HSQL 不使用

我从事的一个项目(使用Java、Spring、Hibernate)最近从Oracle更改为MySQL。在少数情况下,代码中的某些属性是MySQL中的保留字,例如“release”。有几个解决方案,1)重命名代码中的属性和后续的getter/setter方法,同时更新调用这些方法的代码2)用@Column(name="`release`")注释代码中的属性.这告诉hibernate在与数据库对话时引用名称。我宁愿远离第一种方法,以减少破坏更多东西的机会。第二种方法是“好的”,除了它成为MySQL特定的。在我们的开发中。设置我们使用HSQL,它不喜欢这些列名称周围的反引号。我查看了org.

mysql - Hibernate/MySQL 并发问题

我使用Hibernate(4.1.9.Final)和MySQL(14.14Distrib5.5.29,InnoDB表)得到了一个非常奇怪的结果:当我使用一个线程将某些内容保存到数据库并尝试使用另一个线程获取它时,Hibernate并不总能找到该实体。(尽管事实上我在打开加载session之前正确地提交了事务并关闭了持久session。)一些观察:我无法使用单线程程序重现这一点。我可以在数据库中看到“丢失”的实体,并且如果我重新启动应用程序,Hibernate可以成功加载实体。这是一个说明问题的SSCCE。(为简洁起见省略了导入):publicclassStressTest{static

java - 为什么 Hibernate 生成这个 SQL 查询?

我正在使用Hibernate和MySql服务器。我使用多个数据库作为“命名空间”(例如users、transactions、logging等)。因此,我将Hibernate配置为不连接到特定数据库:url=jdbc:mysql://127.0.0.1/表所在的数据库通过catalog属性定义在hbm文件中:...当我想加载一些数据时,一切正常,Hibernate似乎生成了预期的SQL查询(通过在表名中使用目录前缀),例如:selectidfromusers.user但是,当我尝试添加新记录时,Hibernate不再使用from[catalog].[table_name]语法。所以我收到

java - UTF-8 不会在 Hibernate + MySQL 上持续存在

我正在尝试使用Hibernate在MySQL数据库中保存一些值,但大多数立陶宛字符都不会被保存,包括ąĄčəĘėĖįĮųŲūŪ(它们被保存为?),但是,šŠžŽ会被保存。如果我手动插入,那么这些值会被正确保存,因此问题很可能出在Hibernate配置中。到目前为止我尝试了什么:hibernate.charset=UTF-8hibernate.character_encoding=UTF-8hibernate.use_unicode=true---------properties.put(PROPERTY_NAME_HIBERNATE_USE_UNICODE,env.getRequire

java - 将 MySQL JSON 列映射到 hibernate 值类型

在Java代码中使用JSON列的最佳实践是什么?具体来说,我对能够使用hibernate在MySQL数据库中保存和查询JSON列很感兴趣。@EntitypublicclassMyEntity{privateStringmyField;//thisfieldisajsoncolumnpublicMyEntity(){}} 最佳答案 在Hibernate中有一个很好的库来处理JSON类型。它叫做HibernateTypes,您可以向下滚动到MySQL部分以获取正确的示例。以及一些在查询中使用MySQL的JSONAPI的示例:Howtos

java - 永不更改表的最佳 Spring/Hibernate 配置

我目前正在为我正在进行的项目使用Spring+Hibernate+MySQL。我意识到有很多表永远不会改变。它们是静态的,在这些表上永远不会发生插入或更新,因此可以认为是不可变的。对这些表的所有访问都是通过实体集合和hql查询的延迟加载(可以变得急切)。对于这种情况,我想知道处理这种情况的最佳性能方法是什么。我已经掌握了基础知识,只读ehcache、查询缓存和设置为只读的事务(这对Mysql有什么作用吗?)。我还可以查看哪些其他内容?哪种隔离模式、传播模式最好?我应该看看其他缓存解决方案吗?或者我应该简单地取消所有这些,只将数据一次加载到一系列HashMap中(希望这将是最后的手段)?

mysql - 在 MySQL 和 Hibernate 中使用序列

我正在从事一个使用Hibernate和MySQL的项目。我打算使用序列为数据库中的所有表生成ID。(很难描述我的问题,所以我会举个例子给你看)。例如:我有2个表A和B。首先,我向表A插入10条记录,它们的ID将是1到10。然后,我向表B中插入10条记录,并且我希望它们的ID为11-20,而不是1-10。这意味着生成的ID值将被数据库中所有表中的所有记录统计,而不是单个表中。那么我如何在MySQL中使用这个概念呢?声明和语法?在Hibernate中,如何使用数据模型上的策略和生成器将生成的策略应用到数据库中?非常感谢! 最佳答案 你在

java - Hibernate hbm2ddl.auto=validate 和 MySQL 文本类型的问题

我尝试在我继承的项目上启用hbm2ddl.auto=validate。我现在收到很多关于使用文本或mediumtext(MySQL数据库)映射的字符串属性的错误列类型异常。映射是:@Column(name="DESCRIPTION",nullable=false,length=65535)@Length(max=65535)@NotNullpublicStringgetDescription(){returnthis.description;}数据库中的数据类型是“文本”(utf8_general_ci)。我认为这应该是正确的映射,但Hibernate提示它找到了文本,但期待的是长文本

java - Hibernate,最高效的id生成策略是什么?

我需要通过Hibernate将许多实体插入到数据库中。所以,我想找到最有效的Id生成算法。因此HibernateDocumentation存在四种广泛使用的生成策略:身份顺序表格自动我应该使用MySQL数据库,所以我不能应用SEQUENCE生成策略。其他策略呢?从性能的角度来看,什么是最有效的? 最佳答案 Hibernate中最好的id生成器是enhanced-table和enhanced-sequence,再加上适当的优化器,例如hilo。我有使用enhanced-table+hilo的经验,每秒插入超过10,000条记录。顺便说