У меня есть 2 простых объекта домена следующим образом .. с Oracle база данных
@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 вставляет нулевые значения в поле внешнего ключа rpfid в моих моделях. AspsortObject. Я пытался изменить каскадные стили, стратегии генерации, но ничего не получалось. Если сделать nullable = false, выдает ошибку. Данные вставляются, но в AspsortObject.rfpid значения null, пожалуйста, помогите мне