草庐IT

java - JPA 在 MySQLIntegrityConstraintViolationException 中插入父/子结果

这个问题已经被问过很多次了,但我没有找到任何好的答案,所以我会再问一次。我有如下的父子单向关系:@Entity@Table(name="PARENT")publicclassParent{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Column(name="ID")privateLongparentId;@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.PERSIST)@JoinTable(name="CHILD",joinColumns=@JoinColumn(nam

mysql - JPA EntityExistsException 合并时重复条目?

在J2SE应用程序中使用JPA(OpenJPA)我正在尝试使用条目列表的内容更新表:添加新条目或将现有条目替换为列表中的条目(如果存在)。1)这样做的最佳方法是什么?为此,我想在同一个事务中执行数百个合并...(列表中的某些条目可能与相同的Id相同)在使用HSQLDB时似乎工作正常,但在使用MySQL作为数据库时出现此异常:org.apache.openjpa.persistence.EntityExistsException:重复条目2)知道为什么吗?代码很简单,大概是这样的:EntityManagerem=emfactory.createEntityManager();em.get

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 检查 1 公里圆内是否有长纬度

这个问题在这里已经有了答案:UseMySQLspatialextensionstoselectpointsinsidecircle(8个答案)关闭7年前。我正在开发一个JavaEE项目,它具有这样的实体:@EntitypublicclassLocation{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateLongmessageId;@ManyToOneprivateUseruser;privateStringname;privateFloatlatitude;privateFloatlongitude;}如果这些位置在1公里

mysql - "Packet for query is too large"在带有 mysql 的 java web 应用程序中

我有一个在ubuntu上的tomcat7上运行的Web应用程序,并连接到同一台机器上的mysql数据库。为了管理连接,我正在使用Hikari数据源并使用Hibernate作为ORM。运行服务器几天后,我开始在日志文件中遇到以下问题,并且所有请求开始失败Causedby:com.mysql.jdbc.PacketTooBigException:Packetforqueryistoolarge(1317>1024).Youcanchangethisvalueontheserverbysettingthemax_allowed_packet'variable.我已经在mysql服务器中设置了

java - com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException : Cannot add or update a child row: a foreign key constraint fails

当我想插入一些数据时,我经常遇到错误项目类@Entity@NamedQueries({@NamedQuery(name="Project.findAll",query="SELECTpFROMProjectp"),@NamedQuery(name="Project.findByTitle",query="SELECTpFROMProjectpWHEREp.title=:title")})publicclassProjectimplementsSerializable{@Id@GeneratedValue(strategy=GenerationType.IDENTITY)privatei

java - Spring boot 2 升级 - spring boot data jpa saveAll() very slow

我将mysql与hibernate和springbootdatajpa(spring-boot-starter-data-jpa和mysql-connector-java)结合使用。最近我将我的springboot项目从1.5升级到2.0。用于保存可迭代对象的SpringDataCrudRepositoryAPI已从save()更改为saveAll()。我对代码进行了更改,它可以工作,但速度很慢:插入10项->慢2倍(49毫秒->95毫秒)插入100项->慢6倍(132毫秒->840毫秒)插入1000项->慢10倍(792毫秒->8028毫秒)插入10000个项目->慢15倍(4912

mysql - 如何使用 JPA 引用的表的主键更新一个表中的外键?

我有如下两个表,用户+--------+---------------+------------+--------+-----------+------------+--------------+----------------+----------------+-------------+|USERID|EMAIL|FIRST_NAME|HONORS|LAST_NAME|LOGIN_TYPE|PHONE_NUMBER|PROFILE_PIC|RECENT_CONV_ID|LOCATION_ID|+--------+---------------+------------+------

java - 与 JPA 的数据库独立字符串比较

我正在使用JPA(Hibernate作为提供程序)和底层MySQL数据库。我有一张包含德国街道名称的表格。每个街道名称都有一个唯一的编号。对于一项任务,我必须找出名称的编号。为此,我编写了一个如下所示的JPQL查询"SELECTsFROMStrassencodesWHEREs.name=:name"不幸的是,德国的一些街道名称仅在大小写字母上有所不同,例如“AmkleinenFeld”和“AmKleinenFeld”。显然其中一个是语法错误,但作为一条街道的名称,两种拼写都是允许的,而且它们都有不同的数字。当我将我的JPQL查询发送到数据库时,我正在使用query.getSingleR

java - 无法构建 Hibernate SessionFactory,由 : org. hibernate.AnnotationException 引起:

我的mysql数据库和hibernate-tools生成的类都有这个问题,在我对涉及4个表的数据库进行更改之前,一切都运行良好。这是表格:--SET@OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS,UNIQUE_CHECKS=2;SET@OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS,FOREIGN_KEY_CHECKS=0;SET@OLD_SQL_MODE=@@SQL_MODE,SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';-------------------------------