无法使用休眠映射来映射字段

普里扬卡·塔尼娅(Priyanka taneja)

我想在表供应商详细信息和产品详细信息之间建立一对多的关系。像一个供应商可以有多个产品。但是,当我将数据插入表时,它会插入所有四个字段,而不是将vendorid映射到ProductDetail表中,并生成查询。

   Hibernate: insert into ProductInfo (productCategory, productDetails, productPrice, VendorId) values (?, ?, ?, ?) It shuld map vendor ID also but in table its empty. 

VendorDetail.java

 package com.cts.entity;

import javax.persistence.*;

 @Entity
 @Table(name = "VendorInfo")
 public class VendorDetails {
    @Id
    @Column
    private Long VendorId;

    @OneToMany
    private ProductDetails productdetail;

    @Column
    private String VendorName;

    @Column
    private String Password;

    public String getVendorName() {
        return VendorName;
    }
    public void setVendorName(String vendorName) {
        VendorName = vendorName;
    }

    public Long getVendorId() {
        return VendorId;
    }
    public void setVendorId(Long vendorId) {
        VendorId = vendorId;
    }
    public String getPassword() {
        return Password;
    }
    public void setPassword(String password) {
        Password = password;
    }
}

ProductDetails.java

 package com.cts.entity;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

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

    @ManyToOne(cascade = CascadeType.ALL)@JoinColumn(name = "VendorId")
    private VendorDetails vendordetails;


    public ProductDetails() {

    }
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column
    private int productId;
    @Column
    private String productCategory;
    @Column
    private String productDetails;
    @Column
    private String productPrice;
    public VendorDetails getVendordetails() {
        return vendordetails;
    }
    public void setVendordetails(VendorDetails vendordetails) {
        this.vendordetails = vendordetails;
    }
    public int getProductId() {
        return productId;
    }
    public void setProductId(int productId) {
        this.productId = productId;
    }
    public String getProductCategory() {
        return productCategory;
    }
    public void setProductCategory(String productCategory) {
        this.productCategory = productCategory;
    }
    public String getProductDetails() {
        return productDetails;
    }
    public void setProductDetails(String productDetails) {
        this.productDetails = productDetails;
    }
    public String getProductPrice() {
        return productPrice;
    }
    public void setProductPrice(String productPrice) {
        this.productPrice = productPrice;
    }

}

DAO类ProductDetailDaoImpl.java

 package com.cts.Dao;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import com.cts.entity.ProductDetails;
import com.cts.entity.to.ProductDetailsTo;

@Repository
 public class ProductDetailDaoImpl implements ProductDetailDao {

    @Autowired
    SessionFactory sessionFactory;

    @Transactional
    public boolean saveProductInfo(ProductDetailsTo productTo) {

        System.out.println("M in Registration DAO");

        System.out.println(productTo.getProductCategory());
        System.out.println(productTo.getProductDetails());
        System.out.println(productTo.getProductId());
        System.out.println(productTo.getProductPrice());

        //getting productTo data to entity class
        ProductDetails prodet = productTo.getEntity();

        System.out.println("Value of product details is:" + prodet.getProductDetails());

        sessionFactory.getCurrentSession().save(prodet);
        return false;
    }

}
库玛·高拉夫(Kumar Gaurav)

VendorDetails有许多ProductDetails,因此您需要像这样进行一对多注释:-

@OneToMany(mappedBy="vendordetails") //mappedBy value will be what you    declared //in  ProductDetails class.
private Collection<ProductDetails> productdetail=new ArrayList<ProductDetails>;

并创建此设置器和获取器。

Now in ProductDetails class you need to annotate many to one like this:-
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "VendorId")
private VendorDetails vendordetails;

然后,将在表“ ProductInfo”中创建一个名为“ VendorId”的新列,由于声明了mappingBy value =“ vendordetails”,因此将插入每个供应商ID。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

映射来自Axios中响应的字段?

来自分类Dev

映射来自Axios中响应的字段?

来自分类Dev

映射来自Axios中响应的字段?

来自分类Dev

映射来自Axios中响应的字段?

来自分类Dev

休眠注释-日期无法映射

来自分类Dev

休眠映射

来自分类Dev

休眠:映射映射异常

来自分类Dev

C ++,如何使用映射来保存多个整数值

来自分类Dev

休眠@onetomany双向映射无法正确映射数据

来自分类Dev

无法执行OneToOne映射休眠

来自分类Dev

休眠映射异常-无法确定以下类型:

来自分类Dev

休眠映射无法提取结果集

来自分类Dev

休眠-此映射正确吗?无法通过反射吸气剂获得字段值?

来自分类Dev

使用“没有方言映射...”的nvarchar字段,SQL Server休眠失败

来自分类Dev

使用休眠工具进行延迟映射?

来自分类Dev

使用休眠工具进行延迟映射?

来自分类Dev

无法使用映射插件映射数据?昏死

来自分类Dev

是否可以配置jOOQ对象映射来确保设置了POJO的所有字段?

来自分类Dev

使用Automapper映射只读字段

来自分类Dev

如何通过休眠注释映射模型类中的布尔字段

来自分类Dev

休眠(映射)ClassNotFoundException

来自分类Dev

关联表休眠映射

来自分类Dev

sqlserver休眠日期映射

来自分类Dev

指定休眠映射文件

来自分类Dev

休眠未映射

来自分类Dev

@ManyToMany休眠映射问题

来自分类Dev

休眠映射抛出异常

来自分类Dev

休眠列表映射

来自分类Dev

映射对象休眠