Быть в спящем режиме или EclipseLink для JPA? [закрытый]

Попробуйте это в ajax success

success: function () {
    window.location = '@Url.Action("DownloadAttachment", "PostDetail")';
}

Обновленный ответ:

public ActionResult DownloadAttachment(int studentId)
{          
    // Find user by passed id
    // Student student = db.Students.FirstOrDefault(s => s.Id == studentId);

    var file = db.EmailAttachmentReceived.FirstOrDefault(x => x.LisaId == studentId);

    byte[] fileBytes = System.IO.File.ReadAllBytes(file.Filepath);

    return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, file.Filename);                       

}

Запрос Ajax:

$(function () {
        $("#DownloadAttachment").click(function () {
            $.ajax(
            {
                url: '@Url.Action("DownloadAttachment", "PostDetail")',
                contentType: 'application/json; charset=utf-8',
                datatype: 'json',
                data: {
                    studentId: 123
                },
                type: "GET",
                success: function () {
                    window.location = '@Url.Action("DownloadAttachment", "PostDetail", new { studentId = 123 })';
                }
            });

        });
    });
31
задан Ta Sas 13 July 2010 в 07:02
поделиться

4 ответа

ИМХО Всегда лучше использовать стандартный API, где это возможно. Ваш собственный пример показывает это отлично. Вы смогли опробовать свой идентичный код на двух провайдерах, когда один из них не работал должным образом. Переключение на любой собственный API не позволяет вам сделать это.

Если использование EclipseLink в качестве вашего провайдера JPA 2.0 работает хорошо для вас, используйте его. Если вы случайно столкнулись с проблемой, сообщите об ошибке EclipseLink и получите помощь на этом форуме или форумах и новостных группах EclipseLink.

20
ответ дан ROMANIA_engineer 27 November 2019 в 22:17
поделиться

EclipseLink более совместим со стандартами, так как это эталонная реализация для JPA 2, Hibernate имеет некоторые проблемы с совместимостью, но более зрелый.

Одним из основных преимуществ EclipseLink является то, что вы можете вызывать собственные функции SQL непосредственно в ваших запросах JPQL. В Hibernate это не возможно напрямую.

Но в Hibernate больше сообщество, лучшая документация, а также сообщения об ошибках.

26
ответ дан Timo Westkämper 27 November 2019 в 22:17
поделиться

Из моего опыта, с Java Perf Profiling. Мои приложения, созданные с использованием Eclipselink, работают намного лучше, чем с Hibernate, как при вставке, так и при извлечении данных. Hibernate, однако, более широко используется и предоставляет больший форум для поддержки.

По этой причине я просто возьму Hibernate.

8
ответ дан Tunde Pizzle 27 November 2019 в 22:17
поделиться

Просто возьми и придерживайся одного. Стандарты являются лишь конечными рекомендациями, и каждый исполнитель может внедрять или не внедрять стандарты соответствующим образом.

, например,

  • EclipseLink имеет проблемы с использованием чего-то базового, такого как JPA @Converter, хотя предположительно недавно исправлено через IBM http://www-01.ibm.com/support/docview.wss?uid = swg1PI73277

  • Реализация JPQL в Hibernate не понимает логических значений, которые более конкретно стоят сами по себе. Мне пришлось изменить свой JPQL, чтобы сказать

    from Participant p where not p.cancelled

    -

    from Participant p where p.cancelled = false

Другое дело, что вы строите вещи весной, и вы, вероятно, будете делать неправильные, но общие подход изменения загрузчика классов в порядке PARENT_LAST, чтобы ваши классы использовались вместо серверов приложений.

Если вы планируете действовать надлежащим образом и использовать JPA, поставляемый с сервером приложений, просто будьте осторожны, так как ваша реализация Application Server может содержать ошибки.

Транзакции мудро для вашего приложения, в частности Spring должен обрабатывать вещи для вас.

1
ответ дан Archimedes Trajano 27 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: