Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Hibernate中持久化从Jackson Json获取的实体_Json_Hibernate_Jpa_Jackson - Fatal编程技术网

在Hibernate中持久化从Jackson Json获取的实体

在Hibernate中持久化从Jackson Json获取的实体,json,hibernate,jpa,jackson,Json,Hibernate,Jpa,Jackson,下面是我的情景 我有两个实体 1) 客户 2) 计划 它们之间的关系是一个客户提供多个项目。我在Hibernate中创建了两个实体,如下所示 @Entity @Table(name="client") public class Client extends BaseEntity<Long> { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long clientId; ....

下面是我的情景

我有两个实体

1) 客户

2) 计划

它们之间的关系是一个客户提供多个项目。我在Hibernate中创建了两个实体,如下所示

@Entity
@Table(name="client")
public class Client extends BaseEntity<Long> {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long clientId;
   ......
   ......
}


@Entity
@Table(name="Project")
public class Project extends BaseEntity<Long>{
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long projectId;
    .......

    @ManyToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "clientId")
    private Client client;

    .......

}
我的客户端(父实体)已在数据库中持久化。我必须将现有的clientId引用到我正在插入的新项目

我使用Jackson作为Json库


插入项目时,是否有任何方法可以自动映射/获取客户实体?

什么是“自动”意思

如果
Project
是客户机-项目关系的拥有方(根据您的需求可能应该是这样),您可以调用
Project.setClient(entityManager.getReference(client.class,id))
(或者
Project.setClient(session.load(client.class,id))
如果您使用的是Hibernate会话)避免从数据库加载
客户端
实体的整个状态

@RestController
@RequestMapping("/project")
public class ProjectController {

    @Autowired
    private ProjectService projectService;


    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public ResponseEntity<String> add(@RequestBody Project project, BindingResult result) throws JsonProcessingException {

        ........
        projectService.saveProject(project);

        ....

    }

}
{
  "name": "Project 1",
  "description": "client Project 1",
  "startDate": "2012-07-21 12:11:12",
  "endDate": "2017-07-21 12:11:12",
  "totalPlannedReleases": 20,
  "projectKey": "MAQ",
  "avatar":"Not Available",
  "client": {"clientId":1}
}