java - @OneToMany 双向 - 连接列插入 "null"值( hibernate )

标签 java hibernate jpa hibernate-onetomany

我有 2 个模型/注释类,ProductDetails 和 VnfDetails。
我想使用 JPA HIbernate 将 2 个表与 @OnetoMany 关系连接起来

产品详情 模型类在下面,带有@OnetoMany 映射:

@Entity
@Table(name="product_details")
public class ProductDetails {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="ID")
private int id;        

@Column(name="PRODUCT_ID")
private String productId;

@Column(name="PRODUCT_NAME")
private String productName;

@OneToMany(mappedBy="productDetails", cascade=CascadeType.ALL)
private Set<VnfDetails> vnfd;


public Set<VnfDetails> getVnfd() {
    return vnfd;
}

public void setVnfd(Set<VnfDetails> vnfd) {
    this.vnfd = vnfd;
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public String getProductId() {
    return productId;
}

public void setProductId(String productId) {
    this.productId = productId;
}

public String getProductName() {
    return productName;
}

public void setProductName(String productName) {
    this.productName = productName;
}

Vnf详情下面是@ManytoOne 和 JoinColumn:
@Entity
@Table(name="vnf_details")
public class VnfDetails {


@Id
@Column(name="VNF_ID")
private String vnfId;

@Column(name="VNF_NAME")
private String vnfName;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="PRODUCT_ID")
private ProductDetails productDetails;

public ProductDetails getProductDetails() {
    return productDetails;
}

public void setProductDetails(ProductDetails productDetails) {
    this.productDetails = productDetails;
}

public String getVnfId() {
    return vnfId;
}

public void setVnfId(String vnfId) {
    this.vnfId = vnfId;
}

public String getVnfName() {
    return vnfName;
}

public void setVnfName(String vnfName) {
    this.vnfName = vnfName;
}

当我插入数据时,数据被插入但是
产品编号 Vnf详情表为空。

它应该是 PRODUCT_DETAILS 表的具有“ ID ”的外键。

无法解决问题。

最佳答案

在单向映射中,我遇到了类似的问题,即在外键列中插入空值并得到运行时异常数据异常。

通过在 @JoinColumn 上添加 nullable=false 解决了问题喜欢

@OnetoMany
@JoinColumn(nullable=false) 

并删除了子实体中的外键列定义。

关于java - @OneToMany 双向 - 连接列插入 "null"值( hibernate ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47560527/

相关文章:

java - 名为 X 的 EntityManager 没有持久性提供程序错误

java - 将无状态 session bean 注入(inject) Seam 2.2 中的 EntityHome 派生后引发空指针异常

java - MySQL 没有正确存储一些 UTF8 字符

java - 有没有办法将 JSON 模式转换为 XSD?

java - 为什么泛型类型只能为静态方法定义?

javascript - 从 java 文件中的函数弹出简单的文本消息警报

java - JPA 实体管理器资源处理

java - 连接池错误(Spring, hibernate )。如何解决这个问题?

java - JPA如何延迟加载集合?

json - REST:如何以 "shallow"的方式将 java 对象序列化为 JSON?