2016-08-16 55 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 

这些别名当然不是很对人友好的名字命名的。