Использование критериев JPA / Hibernate для перехода между датами

Я пытаюсь использовать следующий код для извлечения списка объектов Experience из MySQL стол. В каждом опыте есть столбец от datetime и столбец до datetime , и я хочу извлекать только строки, в которых сегодняшняя дата находится между от и до.

Я использую JPA 2.0 запускается из Hibernate.

    Date currentDate = new Date();
    CriteriaBuilder builder = entityManager.getCriteriaBuilder();
    CriteriaQuery query = builder.createQuery(Experience.class);
    Root root = query.from(Experience.class);
    builder.between(currentDate, root.get("from"), root.get("to"));
    return entityManager.createQuery(query).getResultList();

Моя проблема в том, что builder.between () , очевидно, не позволит мне передать объект Date. Конфигурация config = ConfigurationManager ....

Во время установки нашей программы мы запускаем этот метод для шифрования разделов app.config:

// Get the application configuration file.
Configuration config =
      ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

// Define the Rsa provider name.
const string provider = "RsaProtectedConfigurationProvider";

// Get the section to protect.
ConfigurationSection connStrings = config.ConnectionStrings;

if (connStrings != null)
{
    if (!connStrings.SectionInformation.IsProtected)
    {
        if (!connStrings.ElementInformation.IsLocked)
        {
            // Protect the section.
            connStrings.SectionInformation.ProtectSection(provider);

            connStrings.SectionInformation.ForceSave = true;
            config.Save(ConfigurationSaveMode.Full);
        }
    }
}

Пока работает нормально. Но если я запустил эту программу, на нескольких машинах мы обнаружим следующую ошибку: «Не удалось расшифровать с помощью поставщика 'RsaProtectedConfigurationProvider'. Сообщение об ошибке от поставщика: Не удалось открыть контейнер ключей RSA ».

Конечно, я искал и нашел эту справку , но это не сработало. Есть идеи?

6
задан Aliostad 24 November 2010 в 09:03
поделиться