我有两个模型,一个为客户,一个为卖家,在客户表中,我只需要一个卖家,已经在卖家表中,我可以有几个客户为一个卖家。
但是当我试图添加一个新客户,设置销售人员的id,它就是不起作用。
代码如下:
package com.crud.spring.jpa.postgresql.model;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.*;
@Entity
@AllArgsConstructor
@Getter
@Setter
@Table(name = "sellers", uniqueConstraints = @UniqueConstraint(columnNames = "code"))
public class Seller {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "code")
private long code;
@Column(name = "name")
private String name;
public Seller(){
}
}
package com.crud.spring.jpa.postgresql.model;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.annotations.OnDelete;
import org.hibernate.annotations.OnDeleteAction;
import javax.persistence.*;
@Entity
@AllArgsConstructor
@Getter
@Setter
@Table(name = "clients", uniqueConstraints = @UniqueConstraint(columnNames = "code"))
public class Client {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "code")
private long code;
@Column(name = "name")
private String name;
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name = "seller_id", referencedColumnName = "id", nullable = false)
@OnDelete(action = OnDeleteAction.CASCADE)
@JsonIgnore
private Seller seller;
public Client(){
}
}
@PostMapping("/clients")
public ResponseEntity createClients(@RequestBody Client client) {
return this.service.createClients(client);
}
public ResponseEntity createClients(Client client) {
try {
client = this.repository.save(client);
return new ResponseEntity(client, HttpStatus.OK);
} catch (Exception e){
return new ResponseEntity(e, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
“entityName”:“com.crud.spring.jpa.postgreql.model.client”,“propertyName”:“seller”,“message”:“not-null属性引用null或瞬态值:com.crud.spring.jpa.postgreql.model.client.seller”,“localizedMessage”:“not-null属性引用null或瞬态值:com.crud.spring.jpa.postgreql.model.client.seller”,“propertyName”:“not-null属性引用null或null或瞬态值:com.crud.spring.jpa.postgreql.model.client.seller”,在这里输入代码
“localizedmessage”:“not-null属性引用null或瞬态值:com.crud.spring.jpa.postgreql.model.client.seller;嵌套异常是org.hibernate.propertyValueException:not-null属性引用null或瞬态值:com.crud.spring.jpa.postgreql.model.client.seller”,
在json中尝试“seller”:{“id”:15}
insted of“seller_id”:15
问题内容: 我目前正在阅读有关实体关联的Hibernate文档,但遇到一些困难却难以理解。它在本质上做的区别和联系。尽管我在实际项目中使用了它们,但是我无法完全理解它们之间的差异。据我了解,如果一个表/一个实体与另一个实体有关联,则该关联应来自另一侧。那么,我们应该如何根据具体情况决定选择哪个呢?它又如何影响数据库/查询/结果?到处都有很好的例子吗? PS:我认为这与问题相关,如果有人可以解释关联
用户详细信息 有人能看出我做错了什么吗?
我试图定义两个类之间的双向关系。拥有方是类测验,相反方是用户。一个用户可以创建许多测验,而一个测验只能有一个创建它的用户。我在网上找到的每一个教程都指出,在owning方面,您指定了ManyToOne注释和JoinColumn,在相反的方面,您使用owners字段的名称指定了OneToMany和mappedBy。然而,当我这样做时,IDE给了我一个错误“找不到逆关系”。我在这个概念上哪里出错了?如
拥有2个实体:订单和产品。1个订单可以有多个产品,多个产品可以属于1个订单(每个产品只属于1个订单)。 尝试了@JsonIgnore。这不会返回子元素或父元素。尝试了@JsonManagedReference和@JsonBackReference-仍然没有成功。 请给我指点一下
问题内容: 具有以下内容: 这是否意味着删除User对象会删除与其关联的Institution对象?如果是这种情况,我将不遵循为什么需要这样做。例如说该机构有很多用户。这是否意味着删除这些用户之一会删除该机构,在这种情况下,所有其他用户也会丢失该机构? 问题答案: 没错,很少(如果曾经)需要将CascadeType.REMOVE与ManyToMany或ManyToOne一起使用。在JPA 2.0规
我正在做一个基本的例子来测试级联删除操作,但我得到了异常。这是我的实体