休眠是使用apache-poi在外键字段中插入空值

艾曼丁胺:

我有2个简单的域对象,如下所示。

@Entity
@Table(name="rfpobject")
public class Rfpobject {

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

private String ide;
private String unit;

private String rfpid;

private String requestid;

private String incoming;

@OneToMany(mappedBy = "rfpid",cascade=CascadeType.PERSIST)
private Set<AspsortObject> rfpide;

第二个对象是:

@Entity
@Table(name="aspsortobject")
public class AspsortObject {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private long id;
    @ManyToOne(cascade = CascadeType.PERSIST)
    @JoinColumn(name = "rfpid")
    private Rfpobject rfpid;
    private String requestid;
    private String aspart;
    private String aspname;
    private String asporganisation;
    private String aspsort;

该方法保存在数据库中:

    @PostMapping("/upload")
     public void addaspsort(@RequestParam("file") MultipartFile file) throws IOException
     { 
         ZipSecureFile.setMinInflateRatio(0);        
         FileInputStream f =  (FileInputStream) file.getInputStream();
            XSSFWorkbook workbook = new XSSFWorkbook(f); 
            XSSFSheet sheet = workbook.getSheetAt(0); 
            Row row;
            for(int i=1; i<=sheet.getLastRowNum(); i++){ 
                 row = sheet.getRow(i);
                  System.out.println("aspsorttt");
                 AspsortObject aspsort =  new AspsortObject();
                 Rfpobject rfpid = new Rfpobject();
                rfpid.setRfpid(row.getCell(0).toString());
                 aspsort.setRfpid( rfpid);
                 aspsort.setRequestid(row.getCell(1).toString());
                 aspsort.setAspart(row.getCell(2).toString());
                 aspsort.setAspname(row.getCell(3).toString());;
                 aspsort.setAsporganisation(row.getCell(4).toString());
                 aspsort.setAspsort(row.getCell(5).toString());
                 aspr.save(aspsort);
            }
        }
    }

出于某种原因,hibernate在我的模型.AspsortObject中的rpfid的外键字段中插入了空值。我尝试更改级联样式,生成策略,但没有任何效果。使nullable = false引发error。插入数据,但在AspsortObject.rfpid中该值为空,请帮助我

Lenymm:

我先保存Rfpobject,获取它的ID,然后保存AspsortObject。

我记得自己为此感到挣扎,因为我认为自己可以同时保存这笔钱,而休眠可以为我做一切,尽管我仍然认为这是可能的,但我不记得从头开始的解决方案。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章