Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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
java spring boot中的一对多关系_Java_Mysql_Spring Boot_Hibernate_One To Many - Fatal编程技术网

java spring boot中的一对多关系

java spring boot中的一对多关系,java,mysql,spring-boot,hibernate,one-to-many,Java,Mysql,Spring Boot,Hibernate,One To Many,我有两个表Users和Institution,主键分别是user\u Id和Institution\u Id。 每个用户在一个且仅在一个机构工作,尽管一个机构可以有多个用户。 因此,这是一种一对多的关系。 但是在我的mySQL数据库中,institution表有固定数量的机构,用户可以在其中工作。 在我的用户表中有一个institution_Id外键,用于指定他为哪个机构工作。 在使用RESTAPI添加用户时,我无法指定他为哪个机构工作 -----用户模型----- …感谢您添加详细信息。 您可

我有两个表Users和Institution,主键分别是user\u Id和Institution\u Id。 每个用户在一个且仅在一个机构工作,尽管一个机构可以有多个用户。 因此,这是一种一对多的关系。 但是在我的mySQL数据库中,institution表有固定数量的机构,用户可以在其中工作。 在我的用户表中有一个institution_Id外键,用于指定他为哪个机构工作。 在使用RESTAPI添加用户时,我无法指定他为哪个机构工作

-----用户模型-----

…感谢您添加详细信息。 您可以通过为相应记录传递
机构
表的主键(即
机构Id
)来实现同样的目的

例如,如果您希望用户
Jawad
链接到机构
maliks
,那么您的
机构
表中应该已经插入了一行,分别为
名称
类型
位置
列插入值为
mallks,Merchant,Le mall sen el fil
。(我假设此记录在您的数据库中有
机构Id
=1)

然后您需要将下面的JSON作为请求传递

{
    "name" : "Jawad",
    "lastname" : "Zakhour",
    "email" : "jawadzakhour@hotmail.com",
    "password" : "jawad123",
    "isActive" : 0,
    "lastActive" : "13/08/2020",
    "createdDate" : "07/07/2020",
    "isBlocked" : 0,
    "institution" : 
        {
            "institutionId" : 1  // As per my assumption stated above
        }
    
}
您需要确保的另一件事是您的
用户
模型具有如下级联设置

    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "institution_id", nullable = false)
    private Institution institution;

到目前为止你试过什么?保存用户时,您是否尝试传递该用户工作的机构的
institutionId
考虑到机构是数据库中已经存在的主数据。我使用postman,所以是的,我尝试在我的json正文中添加所有内容—所有用户字段加上机构字段,你能给我举个例子吗@Sudoss@jayee当然可以。你能用你通过邮递员发送的JSON正文更新你的问题吗?另外,请确保在数据库中为institution table插入了一些行。是的,我会更新我的问题,是的,我的数据库@sudosstanks中的institutions中有记录用于添加详细信息,请检查我的解决方案,如果您遇到任何问题,请通知我们……我可以再问您一个问题吗?它是关于向用户添加角色的。。。这是一个多对多的关系,我应该问一个新问题还是更新这个问题?谢谢你问一个新问题总是更好的,如果你更新这个问题,答案可能会断章取义,对社区没有任何帮助。我问了一个新问题@Sudoss
@GetMapping("/getAllUsers")
    public List<User> getAllUsers() {
        return (List<User>) userrepository.findAll();
    }
    
    @PostMapping("/addUser")
    public String addUser(@RequestBody User user) {
        userrepository.save(user);
        return "user saved with name: " + user.getName();
    }
{
    "name" : "Jawad",
    "lastname" : "Zakhour",
    "email" : "jawadzakhour@hotmail.com",
    "password" : "jawad123",
    "isActive" : 0,
    "lastActive" : "13/08/2020",
    "createdDate" : "07/07/2020",
    "isBlocked" : 0,
    "institution" : 
        {
            "name" : "maliks",
            "type" : "Merchant",
            "location" : "Le mall sen el fil"
        }
    
}
{
    "name" : "Jawad",
    "lastname" : "Zakhour",
    "email" : "jawadzakhour@hotmail.com",
    "password" : "jawad123",
    "isActive" : 0,
    "lastActive" : "13/08/2020",
    "createdDate" : "07/07/2020",
    "isBlocked" : 0,
    "institution" : 
        {
            "institutionId" : 1  // As per my assumption stated above
        }
    
}
    @ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false)
    @JoinColumn(name = "institution_id", nullable = false)
    private Institution institution;