Я проверил все ответы на похожие вопросы, но я не нашел решения.У меня проблема с приложением OneToMany Hibernate.У меня есть две очень простые сущности:
@Entity
public class SWBSubmission {
private Integer swbSubmissionID;
private Integer shipmentID;
private String declarationNo;
private List<SWBSubmissionAttempt> attempts = new ArrayList<>();
@Id
@GeneratedValue
public Integer getSWBSubmissionID() {
return swbSubmissionID;
}
public void setSWBSubmissionID(Integer swbSubmissionID) {
this.swbSubmissionID = swbSubmissionID;
}
public Integer getShipmentID() {
return shipmentID;
}
public void setShipmentID(Integer shipmentID) {
this.shipmentID = shipmentID;
}
@Column(insertable = false, updatable = false)
@Generated(GenerationTime.ALWAYS)
public String getDeclarationNo() {
return declarationNo;
}
public void setDeclarationNo(String declarationNo) {
this.declarationNo = declarationNo;
}
@OneToMany(mappedBy="swbSubmission")
public List<SWBSubmissionAttempt> getAttempts() {
return attempts;
}
public void setAttempts(List<SWBSubmissionAttempt> attempts) {
this.attempts = attempts;
}
}
и
@Entity
public class SWBSubmissionAttempt {
private Integer swbSubmissionAttemptID;
private Timestamp submissionDateTime;
@ManyToOne
@JoinColumn(name="SWBSubmissionID", nullable=false)
private SWBSubmission swbSubmission;
@Id
@GeneratedValue
public Integer getSwbSubmissionAttemptID() {
return swbSubmissionAttemptID;
}
public void setSwbSubmissionAttemptID(Integer swbSubmissionAttemptID) {
this.swbSubmissionAttemptID = swbSubmissionAttemptID;
}
@ManyToOne
@JoinColumn(name = "SWBSubmissionID")
public SWBSubmission getSwbSubmission() {
return swbSubmission;
}
public void setSwbSubmission(SWBSubmission swbSubmission) {
this.swbSubmission = swbSubmission;
}
public Timestamp getSubmissionDateTime() {
return submissionDateTime;
}
public void setSubmissionDateTime(Timestamp submissionDateTime) {
this.submissionDateTime = submissionDateTime;
}
}
Обновление на обеих таблицах работает отлично.Вот, например, данные, вставленные в:
SWBSubmission:
SWBSubmissionID ShipmentID DeclarationNo
1 15 2019FEB00000015
2 16 2019FEB00000016
и SWBSubmissionAttempt
SWBSubmissionAttemptID SWBSubmissionID SubmissionDateTime
1 2 2019-02-28 10:50:19.687
2 2 2019-02-28 11:16:50.173
3 2 2019-02-28 11:17:37.973
5 2 2019-02-28 13:49:40.957
Вот моя проблема.В моем приложении, когда я делаю следующее, я не получаю записи из таблицы сведений:
SWBSubmissionService swbSubmissionService = new SWBSubmissionServiceImp();
shipmentService.beginTransaction();
Integer increment = swbSubmissionService.findByShipmentID(shipment.getShipmentID()).getAttempts().size() + 1;
System.println(increment)
shipmentService.commitTransaction();
Приращение всегда равно нулю, поскольку SWBSubmission не находит записи SWBSubmissionAttempt.
Iпопробовал fetch.EAGER;попробовал обновить, но это не имеет значения.Нет, сообщается об ошибке, и с включенным SHOW_SQL в файле cfg я не вижу никакого генерируемого SQL для таблицы подробностей.Я был на этом весь день.
Любая идея, кто угодно.
Спасибо
Клайд