Olá pessoal, sou iniciante no uso do Hibernate e preciso de ajuda.
Problema:
O código abaixo funciona durante um tempo, após realizar 6 registros aproximadamente surge e o erro nada mais pode ser feito.
Exception:
ConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (gercom
.frequencyregistration
, CONSTRAINT FKC6FAE81593484615
FOREIGN KEY (idFrequencyRegistration
) REFERENCES MemberLab
(idMemberLab
))
Codigo XHTML
<p:selectOneMenu value="#{frequencyregistration.idMemberLab}">
<f:selectItems value="#{frequencyregistration.members}" var="member" itemValue="#{member.idMemberLab}" itemLabel="#{member.name}"/>
</p:selectOneMenu>
<p:selectBooleanButton value="#{frequencyregistration.register}" onLabel="Entrada" offLabel="Saída" onIcon="ui-icon-check" offIcon="ui-icon-close"/>
<p:commandButton value="ok" action="#{frequencyregistration.save}" ajax="false"/>
Codigo Java ManagedBean
public FrequencyRegistrationBean() {
session = HibernateUtil.openSession();
members = loadMembers();
register = true;
memberLab = new MemberLab();
frequencyRegistration = new FrequencyRegistration();
}
public void save() {
System.err.println("Initializing the save process");
Transaction t = session.beginTransaction();
for (MemberLab m : members) {
if(m.getIdMemberLab().equals(idMemberLab)) {
memberLab = m;
break;
}
}
frequencyRegistration = new FrequencyRegistration();
frequencyRegistration.setMemberName(memberLab);
frequencyRegistration.setDateRegistration(new Date(System.currentTimeMillis()));
if(register)
frequencyRegistration.setIngressHour(date);
else
frequencyRegistration.setExitHour(date);
session.save(frequencyRegistration);
t.commit();
System.err.println("Finishing the save process");
}
private List<MemberLab> loadMembers() {
Criteria criteria = session.createCriteria(MemberLab.class);
List<MemberLab> l = criteria.add(Restrictions.eq("valid", true)).list();
return l;
}