2010-10-12 2 views
1

У меня возникла особая проблема, когда hql-запрос работает как ожидается в Windows, но не работает в Linux.Hibernate - другое поведение в Linux и Windows

Вот запрос:

select distinct resource from Resource resource , ResourceOrganization ro 
where (resource.active=true) and (resource.published=true) and 
((resource.resourcePublic=true) or ((ro.resource.id=resource.id and 
ro.organization.id=2) and ((ro.resource.id=resource.id and ro.forever=true) or 
(ro.resource.id=resource.id and current_date between ro.startDate and ro.endDate)))) 

Объяснение: Я извлечение ресурсов из базы данных, где они активны, опубликованная и либо общественных или совместно с организацией, таким образом, что совместное использование либо навсегда, либо между 2 датами ,

У меня одинаковые данные в обеих базах данных (экспортируется из Linux и импортируется в Windows). На окнах я размер Результат = 275

и в Linux я получаю размер Результат = 0

Я посмотрел на данные в Linux, и я вижу, что я должен получить ненулевой размер результата.

Windows, имеет Java 1.5, тогда как Linux имеет Java 1.6

Любые предложения о том, где я должен искать для решения этой проблемы?

Спасибо!

ответ

1
  1. В средстве командной строки SQL введите SQL-фразу за один раз и посмотрите, когда версия Linux пойдет наперекосяк. Для достижения наилучших результатов сделайте то же самое в Windows.
  2. Убедитесь, что SQL-код сгенерирован одинаковым для окон и linux.
  3. и вы уверены, что они относятся к одной и той же базе данных и используют тот же логин? (Изменить - я перечитал и увидел У меня есть одни и те же данные - Вы Suuuuuure?)
  4. и, наконец, я вижу это: и ro.organization.id = 2 Вы уверены, что идентификатор 2 на обе системы? Вы можете загореться, когда порядковые номера/идентификаторы autokey различаются.
+0

_Are You Suuuuuuure? _ Rocket Ray Pilch - инженер-химик. Действительно умный. Я поддерживал имитатор, который использовал. Когда у нас была проблема, это то, что Рэй скажет мне, когда я расскажу о каком-то «факте» о моем коде, и он не поддался его наблюдениям. Горе тому, кто его игнорировал и был неправ! Примерно через 20 лет я все еще слышу этот голос в голове, когда я делаю неопровержимое предположение. –

+0

Тони, спасибо за предложения ... это помогло мне продолжить расследование. Теперь проблема сузилась до SQL, который сгенерирован. К сожалению, ограничение символов в этом поле комментариев не позволяет мне включать SQL-запрос и далее объяснять проблему, которая становится все более интересной! –

+0

Возможно, вы можете вставить его в исходный вопрос. –

Смежные вопросы