热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

springboot:将对象数组写入数据库

对单个表感兴趣以下是我要存储在数据库中的JSON文件

对单个表感兴趣
以下是我要存储在数据库中的JSON文件。我应该如何编写模型类?尝试了一个样本模型,但它仅存储对象的大小,而不存储实际数据。我也无法检索数据。

{
sourceImageRepo: "xxx",sourcetagMatch: "xxx",targetProject: "xxx",targetFiles: [
{
name: "xxx",pattern: "xxx"
},{
name: "xxx",pattern: "xxx"
}
]
}

我收到这样的错误消息:

{
"timestamp": "2019-12-10T06:36:42.745+0000","status": 500,"error": "Internal Server Error","message": "Could not write JSON: (was java.lang.ArrayIndexOutOfBoundsException); nested exception is com.fasterxml.jackson.databind.JsonmappingException: (was java.lang.ArrayIndexOutOfBoundsException) (through reference chain: org.springframework.data.rest.webmvc.json.PersistentEntityJackson2Module$PersistentEntityResourceSerializer$1[\"content\"]->com.example.demo.model.suiteInformations[\"targetFiles\"]->java.util.ArrayList[0])","path": "/suiteInformationses/1"
}

当前模型

suiteInformations.java

package com.example.demo.model;
import javax.persistence.*;
import java.util.ArrayList;
@Entity
@Table(name = "suitesInformations")
public class suiteInformations {
public suiteInformations(int id,String sourceImageRepo,String sourcetagMatch,String email,String targetProject,ArrayList targetFiles) {
this.id = id;
this.sourceImageRepo = sourceImageRepo;
this.sourcetagMatch = sourcetagMatch;
Email = email;
this.targetProject = targetProject;
this.targetFiles = targetFiles;
}
public suiteInformations() {}
@Id
@Column(name = "id")
@GeneratedValue
public int id;
@Column(name = "sourceImageRepo")
public String sourceImageRepo;
@Column(name = "sourcetagMatch")
public String sourcetagMatch;
@Column(name = "Email")
public String Email;
@Column(name = "targetProject")
public String targetProject;
@Embedded
public ArrayList targetFiles;
// getters/setters omitted
}

TargetFiles.java

package com.example.demo.model;
import javax.persistence.Column;
import javax.persistence.Embeddable;
import java.util.ArrayList;
@Embeddable
public class TargetFiles {
@Column(name = "name")
public String name;
@Column(name = "pattern")
public String pattern;
}

数据库内容

SELECT * FROM SUITESINFORMATIONS;
ID EMAIL SOURCEIMAGEREPO SOURCetaGMATCH SIZE TARGETPROJECT
1 xxx xxx xxx 1 xxx


您缺少json中键的引号。我希望这只是一个错字。

{
"sourceImageRepo": "xxx","sourceTagMatch": "xxx","targetProject": "xxx","targetFiles": [
{
"name": "xxx","pattern": "xxx"
},{
"name": "xxx","pattern": "xxx"
}
]
}

您如何尝试将json映射到对象中?
它是api的请求主体吗?您能提供该信息吗?

,

我将使用Spring的spring-boot-starter-data-jpa依赖项。看看Spring的@Repository注释也可能对您有好处。

spring-boot-starter-data-jpa的示例教程:https://spring.io/guides/gs/accessing-data-jpa/

您的JSON文件可能会成为POJO类:

@Entity
public class SuiteInfo {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
private String sourceImageRepo;
private String sourceTagMatch;
private String targetProject;
private List targetFiles;
//relevant getters,setters,equals,etc
public class SuiteFile {
private String name;
private String pattern;
//relevant getters,etc
}
}

然后可以创建存储库接口:

import org.springframework.data.repository.CrudRepository;
public interface SuiteInfoRepository extends CrudRepository {
SuiteInfo findById(long id);
// define other queries here
}

注意:(来自:https://spring.io/guides/gs/accessing-data-jpa/)
You need not write an implementation of the repository interface. Spring Data JPA creates an implementation when you run the application.


推荐阅读
  • 本文介绍了Redis的基础数据结构string的应用场景,并以面试的形式进行问答讲解,帮助读者更好地理解和应用Redis。同时,描述了一位面试者的心理状态和面试官的行为。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • Android JSON基础,音视频开发进阶指南目录
    Array里面的对象数据是有序的,json字符串最外层是方括号的,方括号:[]解析jsonArray代码try{json字符串最外层是 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 我们有(据我所知)星型模式SQL数据库中的数据文件。该数据库有5个不同的文件,扩展名为 ... [详细]
author-avatar
爱生活爱花落_485
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有