Запрос возврата неверных данных

Я с проектом, в котором мы используем NinjaFrameWork в качестве API (No-REST API). Мы вставляем данные в базу данных через стиль запроса:

@Transactional
public Result askCita(Context context, DataCitasAsk cita) {

    manager.getTransaction().begin();
    manager.persist(cita);
    manager.getTransaction().commit();
}

И когда мы собираем данные из базы данных через такой запрос; но он не всегда возвращает одни и те же данные. Иногда он не возвращает последние вставленные данные.

@Transactional
public Result listCitas(Context context, DataCitasList cita) {

    if (cita == null) {
        return Results.json().render(false);
    }

    // La IP del cliente
    String ipClient = context.getRemoteAddr();

    EntityManager entityManager = provider.get();
    DbCitas db = DbCitas.getInstance();

    DataCitasListResult vUser = db.listCitas(entityManager, cita);

    return Results.json().render(vUser);
}

public DataCitasListResult listCitas(EntityManager manager,
        DataCitasList data) {
    String uCheck = Cita.QUERY_CLINIC_MONTH;

    Calendar calBefore = Calendar.getInstance();
    Calendar calAfter = Calendar.getInstance();
    calAfter.set(Calendar.MONTH, calAfter.get(Calendar.MONTH) + 1);

    DatabaseController db = DatabaseController.getInstance(manager);
    Query q = db.getQuery(uCheck);
    q.setParameter("dateBegan", calBefore.getTime());
    q.setParameter("dateEnd", calAfter.getTime());
    q.setParameter("idClinic", data.getIdClinic());

    List<Cita> list = q.getResultList();

    DbVetData vData = DbVetData.getInstance();
    VetData clinic = vData.getClinicDb(manager, data.getIdClinic());

    DataCitasListResult rData = new DataCitasListResult();
    rData.setClinica(clinic);
    rData.setCitas(new ArrayList<DataCitasResultItem>());

    if (list.isEmpty()) {
        return rData;
    }

    ArrayList<DataCitasResultItem> lCitas = new ArrayList<DataCitasResultItem>();
    for (Cita cita : list) {
        DataCitasResultItem nCita = new DataCitasResultItem();
        nCita.setAnswered(cita.getDateVet() != null ? true : false);
        nCita.setCreated(spf.format(cita.getCreated().getTime()));
        if (cita.getDateCita() != null) {
            nCita.setDateCita(spf.format(cita.getDateCita().getTime()));
        }
        if (cita.getDateVet() != null) {
            nCita.setDateVet(spf.format(cita.getDateVet().getTime()));
        }
        nCita.setId(cita.getId());
        nCita.setIdMascota(cita.getPet().getId());
        nCita.setNameMascota(cita.getPet().getName());
        nCita.setMotivo(cita.getMotive());
        nCita.setTipoCita(cita.getType().getId());

        //
        lCitas.add(nCita);
    }
    rData.setCitas(lCitas);

    return rData;
}

В базе данных, если они появляются; кажется немного больше чем консультация, вставка.

Я не понимаю почему.

PD: я включаю определение Citas.class:

@Entity(name = "citas")
   @Table(name = "citas")
   public class Cita {


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

    @Column(name = "created")
    private Timestamp created;

    @ManyToOne
    @JoinColumn(name = "id_mascota")
    private Pet pet;

    @Column(name = "date_cita")
    private Calendar dateCita;
    @Column(name = "date_vet")
    private Calendar dateVet;
    @Column(name = "motivo")
    private String motive;
    @Column(name = "sended")
    private long sended;

    @ManyToOne
    @JoinColumn(name = "tipo_cita")
    private CitaType type;

    @ManyToOne
    @JoinColumn(name = "id_clinica")
    private VetData clinica;

    }

0 ответов

Другие вопросы по тегам