java - 一对多关系的问题

标签 java spring swagger-ui

我对一对多的关系有问题,我只想使用用户ID,我不想创建一个新的用户ID,我把我的代码放在了

@PostMapping("/createFavorite")
    public ResponseEntity<Favorite> createFavorite(@RequestBody Favorite favorite) {

        return new ResponseEntity<Favorite>(userServiceImpl.createFavorite(favorite), HttpStatus.OK);
    }

我最喜欢的实体是

public class Favorite implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;

    @Column(name = "element")
    private String element;

    @ManyToOne
    @JoinColumn(name = "user_fk")
    User user;

我大摇大摆地明白了

{
  "element": "string",
  "user": {
    "email": "string",
    "id": 0,
    "life": "suspend",
    "name": "string",
    "password": "string"
  }
}

我不想创建新用户, 用户已经创建,我只需要使用你的ID来引用它

最佳答案

您需要创建一个新用户或检索任何现有用户并设置在 Collection 夹对象中。如果存在 favorite.user.id ,则不会创建新用户。

即使您应该将 Cascade 设置为 CascadeType.DETACH 以避免从喜爱的对象创建或更新 User 对象。如果 favorite.user.id 为 null,它将抛出错误,而不是创建新的用户对象。

@ManyToOne(cascade = CascadeType.DETACH)
@JoinColumn(name = "user_fk")
User user;

关于java - 一对多关系的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57067735/

相关文章:

java - 使用 Spark-avro 写入数据帧创建 topLevelRecord - 想要使用现有架构

AngularJs watch angular.element

java - 将结果限制为 1

Swagger/Swashbuckle : OAuth2 with Resource Owner Password Credentials Grant

java - 尝试使用 HTTPS 连接到 Solr 时出现 IOException

java - JSOUP - 如何获取登录用户的 Facebook 事件页面的内容?

java - 在 Windows 7 上运行 Windows XP 批处理

java - 使用 ServletContainerInitializer 时,web.xml 的 <env-entry> 标记的等效项是什么?

java - swagger-ui 使用 Controller 的接口(interface)和实现复制端点

spring-boot - Swagger 使用 Spring Boot 和 AWS Lambda