2016-08-16 17 views
0

私は、休止状態でjavaを使用しています。結果に奇妙なシンボルを生成するHibernateクエリ

私はちょうど私のプロジェクトをhibernateを使用するようにセットアップしましたが、私はクエリを実行するときに奇妙なシンボル/セマンティクスを得ています。

次のような奇妙な記号や意味がありますが、その理由はわかりません。ここで

querying all the managed entities... executing: from CarProduct WHERE carid='27883836' Hibernate: select carproduct0_.car_id as car1_0_, carproduct0_.attribute as attribut2_0_, carproduct0_.product_id as product3_0_, carproduct0_.value as value4_0_ from car_product carproduct0_ where carproduct0_.car_id='278838836'


私のメインクラスです:

import java.util.Map; 

public class Main { 
    private static final SessionFactory ourSessionFactory; 
    private static final ServiceRegistry serviceRegistry; 

    static { 
     try { 
      Configuration configuration = new Configuration(); 
      configuration.configure(); 

      serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); 
      ourSessionFactory = configuration.buildSessionFactory(serviceRegistry); 
     } catch (Throwable ex) { 
      throw new ExceptionInInitializerError(ex); 
     } 
    } 

    public static Session getSession() throws HibernateException { 
     return ourSessionFactory.openSession(); 
    } 

    public static void main(final String[] args) throws Exception { 
     final Session session = getSession(); 
     try { 
      System.out.println("querying all the managed entities..."); 
      final Map metadataMap = session.getSessionFactory().getAllClassMetadata(); 
      for (Object key : metadataMap.keySet()) { 
       final ClassMetadata classMetadata = (ClassMetadata) metadataMap.get(key); 
       final String entityName = classMetadata.getEntityName(); 
       final Query query = session.createQuery("from " + entityName + " WHERE carid='278838836'"); 
       System.out.println("executing: " + query.getQueryString()); 
       for (Object o : query.list()) { 
        System.out.println(" " + o); 
       } 
      } 
     } finally { 
      session.close(); 
     } 
    } 
} 
+0

可能な複製http://stackoverflow.com/questions/1710476/print-query-string-in-hibernate-with-parameter-values – ByeBye

答えて

1

何を参照してくださいSQL aliasesが使用されている完全に正常SQLクエリです。次のように

は、たとえばための

from car_product carproduct0_ 

のために我々は、クエリの他の部分に、このエイリアスを使用することができます。

select carproduct0_.car 

これらの別名は、もちろん非常に友好的人間という名前ではありません。