草庐IT

mysql - Spring 数据 JPA; save() 自增主键错误

我有一个以UserId作为主键的USER表,它是int并且在MySQL中自动递增。@Id@GeneratedValue@Column(name="USER_ID")privateIntegeruserId;当我运行userRepository.save(user);我收到一条错误消息:org.springframework.beans.InvalidPropertyException:bean类[com.mysite.model.User]的属性“userId”无效:属性“userId”的Getter抛出异常;嵌套异常是java.lang.reflect.InvocationTarge

java - JPA JPQL 是从数据库还是从持久性上下文中选择查询读取?

对于id=1的文档,我有文档实体和一些托管文档对象。DocumentmanagedDoc=entityManager.find(Document.class,1);managedDoc.setName("changedName");据我所知,在调用setter之后,托管文档状态在持久上下文(进一步的PC)中发生了变化,但数据库中没有任何变化。在我的代码中的某处,我执行以下操作:Queryquery=entityManager.createQuery("fromDocument");Listlist=query.getResultList();returnlist;当我执行如上所示的全选

java - 使用 Hibernate 在 MySQL 中存储字节数组

我正在尝试保存一个带有字节数组字段的实体。我在MySQL数据库上使用Hibernate和JPA。这是字段定义,它适用于嵌入式H2数据库:@Entity(name="blob")publicclassBlob{...@Lob@Basic(fetch=FetchType.LAZY)@Column(name="blobImg",nullable=false)privatebyte[]blobImg;}现在,对于MySQL数据库,每次执行blobRepository.save()时都会抛出异常。实际上,当Hibernate尝试自动创建Blob实体表时,可能会抛出。异常(exception)情况

java - 使用JPQL/JPA时如何使用date_format

我正在使用MySQL作为数据库来开发JavaEE,并在我的代码上实现JPA。我从MySQLWorkbench检索数据没有问题,但是当我将我的语法更改为JPQL时,它不起作用。例如在MySQL中-它有效SELECTdate_format(s.date,'%Y,%m,%d')fromTransactionss;在JPQL中-它不会SELECTdate_format(s.date,'%Y,%m,%d')fromTransactionEntitys;我如何修改以适应JPA查询?注意:在JPQL中,以下工作SELECTs.datefromTransactionEntitys;

java - 如果连接在 spring jpa 中关闭,如何重新连接数据库?

我在我的web应用程序中使用spring-boot、spring-jpa、mysql。当我的应用程序运行几个小时时,我总是遇到以下异常:2016-07-3021:27:12.434ERROR13553---[http-nio-8090-exec-8]o.h.engine.jdbc.spi.SqlExceptionHelper:Nooperationsallowedafterconnectionclosed.2016-07-3021:27:12.434WARN13553---[http-nio-8090-exec-5]o.h.engine.jdbc.spi.SqlExceptionHel

mysql - 带有 Java 8 LocalDateTime 的 Spring Data JPA

过去几个月我一直在使用SpringDataJPA和MYSQL,这是一次非常成功和流畅的体验。在那里我使用java8LocalDateTime来存储日期时间字段,JPA自动将这些字段映射到mysqltinyblob列。最近我接到一个要求,要通过脚本向系统添加一些数据。为了填充日期时间列,我创建了MYSQLTIMESTAMP变量并插入到tinyblob列中。然而,系统开始提示SerializationException,其根本原因是这个转换后的日期时间列。然后我查看了通过应用程序插入的日期时间列,如下所示selectCAST(drop_off_timeASCHAR(10000)CHARAC

java - MySQL : Cannot delete or update a parent row: a foreign key constraint fails 中的@OneToMany 错误

我有一个一对多的关系如下@Entity@Table(name="reminderheader")publicclassReminderHeaderimplementsSerializable{@Id@org.hibernate.annotations.GenericGenerator(name="REMINDER_HEADER_GEN",strategy="native")@GeneratedValue(generator="REMINDER_HEADER_GEN")@Column(name="id",unique=true,nullable=false)@Basic(fetch=Fe

java - 复合键的复合键

我正在尝试了解为我正在创建的数据模型采用何种方法。我有两个最初使用复合键创建的表。我现在要添加一个第三个表,它是前两个表的连接表,这将导致一个包含三个字段的复合键和两个外键,每个外键有2个字段。这可能会在MySQL中并与某种Java持久性框架一起使用。我一直喜欢使用复合键,因为它似乎是一种更自然的数据表示方式,但我想确保以后不会让自己陷入痛苦的境地。我应该继续使用提到的方法还是只在表上创建一些自动递增的ID? 最佳答案 Hibernate建议使用纯技术的、自动生成的、非复合键(纯连接表除外)。并且有充分的理由,IMO。使用复合键,您

java - 获取最后插入记录的主键

我有一个名为Driver的实体类,我的主键生成机制是@Id@GeneratedValue(strategy=GenerationType.AUTO)privateLongid;现在我需要给Driver添加“driverCode”属性,它应该是带有前缀(dri1,dri2)的唯一值,“dri”是前缀值,key应该是Driver的主键值,我想要在第一次创建驱动程序时添加driverCode,为此我需要获取最后插入的驱动程序的主键,添加一个,并与前缀连接,任何人都可以告诉如何在之前获取最后插入的记录的主键插入一条新记录,有什么简单的方法吗?,提前谢谢你, 最佳答案

java - 插入 "Duplicate entry ... for key PRIMARY"和 "Krakow"时为 "Kraków"

我有一个实体LocationsCoordinates用于在具有唯一位置和国家(制作复合主键)的数据库中保存位置坐标,其定义如下:@Entity@Table(name="LOCATIONS_COORDINATES")@IdClass(LocationsCoordinatesPK.class)publicclassLocationsCoordinatesimplementsSerializable{privatestaticfinallongserialVersionUID=-4580217081464519853L;@Id@Column(name="LOCATION")Stringloc