2016-08-16 53 views
0

我正在使用java與休眠。休眠查詢在結果中產生奇怪的符號

我剛剛設置我的項目使用休眠,但我越來越奇怪的符號/語義,當我執行我的查詢。

我得到以下奇怪的符號/語義,我不知道爲什麼?

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查詢,其中使用SQL aliases

例如由於

from car_product carproduct0_ 

我們可以查詢的其他部分使用此別名如下:

select carproduct0_.car 

這些別名當然不是很對人友好的名字命名的。