草庐IT

mysql - 使用 JPA 时如何管理数据库演变?

我按照他们网站上构建小型博客引擎的教程学习了游戏。它使用JPA并在其Bootstrap中调用Fixtures.Deletemodels()(或类似的东西)。它基本上每次运行时都会破坏所有表,我丢失了所有数据。我已经部署了一个类似的生产系统(没有nuke语句)。现在我需要对生产系统部署一个大型更新。许多类已更改、添加和删除。在我的本地测试中,没有在每次运行时都对表进行核对,我遇到了同步问题。当我尝试写入或从表中读取时,Play会抛出错误。我打开mysql,果然表只被修改了一部分,而且在某些情况下修改不正确。即使我在我的配置中将DDL模式设置为“创建”,JPA似乎也无法“弄清楚”如何协调更

java - key 'PRIMARY' 的重复条目使用 JPA 持久保存到数据库中

我在将JPA持久保存到我的数据库时遇到错误,当我将第二个文件持久保存到数据库时发生错误。我需要导入大量数据集,每个数据集有5张。即使其中已经存在一些相同的数据,也需要更新每个表。目前我收到以下错误错误17:26:35,315WARN[org.hibernate.engine.jdbc.spi.SqlExceptionHelper](http-localhost-127.0.0.1-8080-1)SQLError:1062,SQLState:2300017:26:35,316ERROR[org.hibernate.engine.jdbc.spi.SqlExceptionHelper](h

java - 使用日期参数时,Spring Data JPA 日期 "between"查询问题

在我的应用程序中,我使用SpringData和hibernate作为JPA提供程序来保存和读取数据。我有顶级实体类:@Entity@Getter@Setter@Table(name="operation")@Inheritance(strategy=InheritanceType.JOINED)@EqualsAndHashCode(of={"operationId"})publicabstractclassOperationimplementsSerializable{publicstaticfinalintOPERATION_ID_LENGTH=20;@Id@Column(name=

SpringBoot集成Jpa对数据进行排序、分页、条件查询和过滤

之前介绍了SpringBoot集成Jpa的简单使用,接下来介绍一下使用Jpa连接数据库对数据进行排序、分页、条件查询和过滤操作。首先创建Springboot工程并已经继承JPA依赖,(https://www.cnblogs.com/eternality/p/17391141.html)1、排序查询通过findAll方法的Sort类进行排序,根据实体类字段进行排序。descending降序,ascending升序,默认不填为ascending升序。ListmapperAll=userMapper.findAll(Sort.by("id").descending());mapperAll.forE

java - UTF-8 与 JPA 和 Glassfish 4.0

我在使用UTF-8字符时遇到困难。这是一个简单的JSF项目。我使用JSF2.2和Glassfish4.0我有一个方法:em.persist(user);调试时user.getName()此时,我可以在我的IDE中看到utf-8字符。此外,我将字符串保存在sessionbean中,我也可以在浏览器上看到它们。只有持久化到DB时,才持久化为:??????我也可以自己编辑数据库并保存utf-8字符。我的意思是,我的SQL配置适用于UTF-8。问题出在JPA的某处。这是我尝试过的:(全部一起:)持久性.xmlfuscom.tugay.fup.core.model.User这是glassfish

MySQL语法错误异常 : Table XYZ doesn't exist

我正在使用JPA和c3p0并尝试查询一个表并取回堆栈跟踪,声称该表不存在。我可以在例如DbVisualizer中打开与数据库的连接,然后查看那里的表格。事实上,我的应用程序的调试语句显示它能够建立连接并测试其可行性。但后来它找不到table。15:45:53.940[http-8080-1]DEBUGo.h.e.j.i.LogicalConnectionImpl-ObtainingJDBCconnection15:45:53.940[http-8080-1]DEBUGc.m.v.c.i.C3P0PooledConnectionPool-TestingPooledConnection[c

java - Spring 配置的 Hibernate 方言问题

我使用由Spring配置的Hibernate(通过JPA),当我启动我的应用程序(war部署在Tomcat6上)时,我收到此错误:org.hibernate.HibernateException:Connectioncannotbenullwhen'hibernate.dialect'notset这看起来很奇怪,因为我将hibernate方言设置如下:p:databasePlatform="org.hibernate.dialect.MySQL5Dialect有关更多信息,请参阅我的完整applicationContext.xml:因此,我决定在META-INF/persistence

java - 如何创建支持通用 ID(包括自动生成的 ID)的通用实体模型类?

我有三种种类的表主键:INT使用数据库供应商(MySQL)的AUTO_INCREMENT容量自动生成的主键CHAR(X)将用户可读值存储为键的主键(其中X是一个数字且50复杂的主键,由表的2或3个字段组成。此外,还有一些字段可能存在(或不存在):版本,INT字段。createdBy,VARCHAR(60)字段,以及lastUpdatedBy,VARCHAR(60)字段(还有更多字段,但这些涵盖了一个基本示例)。上面的一些例子:表1idint主键auto_increment版本整数值char(10)创建者为varchar(60)lastUpdatedByvarchar(60)表2idch

java - JPA @Version 字段不会增加

我是JPA和Hibernate的新手,我对乐观锁定有疑问。我有一个类,它有一个带@Version注释的字段。当我更新由此类表示的实体时,版本计数器不会增加。这是我的代码:类(class):@Entity@Table(name="Studenten")publicclassStudentimplementsSerializable{privatestaticfinallongserialVersionUID=705252921575133272L;@Versionprivateintversion;privateintmatrnr;privateStringname;privateint

java - 如何在使用 JPA 映射时增加 mysql 中字符串的长度

我在JPA中遇到了一些问题。如果有人可以提供解决方案,我将非常感激。使用JPA(我正在使用MySQLDB),可以说,我有一个映射如下的类:@EntityclassEmployee{intid;StringemployeeName;//gettersandsetters...}当映射到表时,我看到String映射到Mysql中的varchar(255)。但是,假设我有一个名字超过255个字符的员工,它会显示数据截断错误。我知道我们可以通过将"length"属性添加到Employee列来解决这个问题:@column(length=1000)StringemployeeName;这是唯一可行