Из SQL с левым внешним соединением в JPQL или собственный SQL

Привет всем, моя проблема связана с преобразованием одного из Sql с левым соединением в jpa и структуру сущности, но я застрял с этим, вот мой sql

    SELECT   
     *
     FROM X_TABLE LEFT OUTER JOIN Y_TABLE  
     ON 
     TO_CHAR (X_TABLE.TIME1, 'HH24:MI') = 
        TO_CHAR (Y_TABLE.TIME1, 'HH24:MI') 
        AND
          TO_DATE(Y_TABLE.DATE1) = TO_DATE('10/10/2010','dd/MM/yyyy')
           AND 
                Y_TABLE.Z_TABLE_ID =X_TABLE.Z_TABLE_ID,
                  Z_TABLE 

     Where X_TABLE.Z_TABLE_ID =Z_TABLE.ID

Y_TABLE имеет внешний ключ X_table, но когда я запрашиваю этот sql, X_TABLE, у которого нет внешнего ключа Y_TABLE, где будут храниться мои столбцы Y_TABLE?

связь между Y_TABLE и X_TABLE - ManyToOne, поэтому в объекте Y_TABLE у меня есть поле @ManyToOne X_TABLE, когда я отображаю обратно эту связь в X_TABLE через сопоставление, у меня есть список Y_TABLE, когда я запрашиваю этот sql, я получаю только строку с двумя столбцы таблиц?

но в сущности, означающей, что у меня есть список Y_TABLE?

как я могу получить все возвращаемые столбцы в одном объекте, что мне для этого делать?

Спасибо всей системе, с которой мы работали, как показано ниже

eclipselink 2.0.1, Glassfish 3.0.1, JSF 2


person Lidovic    schedule 07.02.2011    source источник


Ответы (1)


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

Использование вашей функции кажется странным, почему вы хотите сравнивать свое время как символы и ваши символы как даты?

Если ваша база данных очень загадочна, вы можете вместо этого определить представление и сопоставить его.

person James    schedule 08.02.2011