Hibernate查询在部署后返回空列表

Hibernate查询在部署后返回空列表,hibernate,jdbc,hql,wildfly-10,persistence.xml,Hibernate,Jdbc,Hql,Wildfly 10,Persistence.xml,伙计们,我在项目中设置端点时遇到了一些问题。我正在使用wildfly 10.1.0.Final、hibernate ogm 5.0.10.Final和Cassandra 3.0.9 我的cassandra数据库中名为“IO_配置”的表中有32行 以下是我的DAO的代码: @Singleton @Startup public class CassandraDAO<T extends Serializable> extends AbstractDAO { private

伙计们,我在项目中设置端点时遇到了一些问题。我正在使用wildfly 10.1.0.Final、hibernate ogm 5.0.10.Final和Cassandra 3.0.9

我的cassandra数据库中名为“IO_配置”的表中有32行

以下是我的DAO的代码:

@Singleton  
@Startup  
public class CassandraDAO<T extends Serializable> extends AbstractDAO {  

  private EntityManagerFactory emf;  
  // @PersistenceContext(unitName = "JPAService")  
  private EntityManager em;  

  @PostConstruct  
  public void init() {  
    System.out.println("***************** init CassandraDAO ***************************");  
    emf = Persistence.createEntityManagerFactory("JPAService");  
    em = emf.createEntityManager();  
  }  

  @PreDestroy  
  public void destroy() {  
    System.out.println("***************** destroying CassandraDAO *************************");  
    if (em.isOpen()) {  
      em.close();  
    }  
    if (emf.isOpen()) {  
      emf.close();  
    }  
  }  

  @Override  
  public EntityManager getManager() {  
    return em;  
  }  

  @Override  
  public void setManager(EntityManager em) {  
    this.em = em;  
  }  

  @Override  
  public EntityManagerFactory getEntityManagerFactory() {  
    return emf;  
  }  

  @Override  
  public void setEntityManagerFactory(EntityManagerFactory emf) {  
    this.emf = emf;  
  }  
}  
@Singleton
@启动
公共类Cassandrado扩展了AbstractDAO{
私人实体管理工厂emf;
//@PersistenceContext(unitName=“JPAService”)
私人实体管理者;
@施工后
public void init(){
System.out.println(“******************初始化Cassandrado**********************************”);
emf=Persistence.createEntityManagerFactory(“JPAService”);
em=emf.createEntityManager();
}  
@发情前期
公共无效销毁(){
System.out.println(“*************************销毁卡桑德拉多*******************************”);
如果(em.isOpen()){
em.close();
}  
如果(emf.isOpen()){
emf.close();
}  
}  
@凌驾
公共实体管理器getManager(){
返回em;
}  
@凌驾
public void setManager(EntityManager em){
this.em=em;
}  
@凌驾
公共EntityManagerFactory getEntityManagerFactory(){
返回电动势;
}  
@凌驾
public void setEntityManagerFactory(EntityManagerFactory emf){
this.emf=emf;
}  
}  
以下是我正在尝试运行的查询:

@SuppressWarnings("unchecked")  
  public List<IOConfiguration> findAllIOConfiguration() {  
    Query query = this.getManager().createQuery("from IOConfiguration");  
    return query.getResultList();  
  }  
@SuppressWarnings(“未选中”)
公共列表findAllIOConfiguration(){
Query Query=this.getManager().createQuery(“来自IOConfiguration”);
返回query.getResultList();
}  
我的查询作为一个独立的java应用程序运行得非常完美。以下是我为测试查询编写的代码:

public class DatabaseConnectionTest {  
  @EJB  
  private static IOConfigurationDAO ioConfigurationDAO;  

  public static void main(String[] args) {  
    DatabaseConnectionTest dbTest = new DatabaseConnectionTest();  
    dbTest.test();  
  }  

  public void test() {  
    ioConfigurationDAO = new IOConfigurationDAO();  
    ioConfigurationDAO.init();  
    List<IOConfiguration> list = ioConfigurationDAO.findAllIOConfiguration();  
    System.out.println(list.size());  
    ioConfigurationDAO.destroy();  
  }  
}  
公共类数据库连接测试{
@EJB
私有静态IOConfigurationDAO IOConfigurationDAO;
公共静态void main(字符串[]args){
DatabaseConnectionTest dbTest=新建DatabaseConnectionTest();
dbTest.test();
}  
公共无效测试(){
ioConfigurationDAO=新ioConfigurationDAO();
ioConfigurationDAO.init();
List List=ioConfigurationDAO.findAllIOConfiguration();
System.out.println(list.size());
ioConfigurationDAO.destroy();
}  
}  
运行此测试后,它将给出一个结果:

***************** init CassandraDAO ***************************  
Mar 06, 2017 5:53:39 PM org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation  
INFO: HHH000204: Processing PersistenceUnitInfo [  
    name: JPAService  
    ...]  
Mar 06, 2017 5:53:39 PM org.hibernate.Version logVersion  
INFO: HHH000412: Hibernate Core {5.0.9.Final}  
Mar 06, 2017 5:53:39 PM org.hibernate.cfg.Environment <clinit>  
INFO: HHH000206: hibernate.properties not found  
Mar 06, 2017 5:53:39 PM org.hibernate.cfg.Environment buildBytecodeProvider  
INFO: HHH000021: Bytecode provider name : javassist  
Mar 06, 2017 5:53:39 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>  
INFO: HCANN000001: Hibernate Commons Annotations {5.0.1.Final}  
Mar 06, 2017 5:53:39 PM org.hibernate.ogm.datastore.impl.DatastoreProviderInitiator initiateService  
INFO: OGM000016: NoSQL Datastore provider: org.hibernate.ogm.datastore.cassandra.impl.CassandraDatastoreProvider  
Mar 06, 2017 5:53:39 PM org.hibernate.ogm.datastore.cassandra.impl.CassandraDatastoreProvider start  
INFO: OGM001601: Connecting to Cassandra at 127.0.0.1:9042  
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".  
SLF4J: Defaulting to no-operation (NOP) logger implementation  
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.  
Mar 06, 2017 5:53:40 PM org.hibernate.ogm.dialect.impl.GridDialectInitiator$GridDialectInstantiator newInstance  
INFO: OGM000017: Grid Dialect: org.hibernate.ogm.datastore.cassandra.CassandraDialect  
Mar 06, 2017 5:53:40 PM org.hibernate.ogm.dialect.impl.GridDialectInitiator$GridDialectInstantiator newInstance  
INFO: Grid dialect logs are disabled  
Mar 06, 2017 5:53:40 PM org.hibernate.dialect.Dialect <init>  
INFO: HHH000400: Using dialect: org.hibernate.ogm.dialect.impl.OgmDialect  
Mar 06, 2017 5:53:40 PM org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl makeLobCreatorBuilder  
INFO: HHH000422: Disabling contextual LOB creation as connection was null  
Mar 06, 2017 5:53:40 PM org.hibernate.id.UUIDHexGenerator <init>  
WARN: HHH000409: Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values; consider using org.hibernate.id.UUIDGenerator instead  
Mar 06, 2017 5:53:40 PM org.hibernate.boot.internal.SessionFactoryBuilderImpl$SessionFactoryOptionsStateStandardImpl <init>  
WARN: Unrecognized hbm2ddl_auto value : off.  Supported values include create, create-drop, update, and validate.  Ignoring  
Mar 06, 2017 5:53:40 PM org.hibernate.search.engine.Version <clinit>  
INFO: HSEARCH000034: Hibernate Search 5.5.3.Final  
Mar 06, 2017 5:53:40 PM org.hibernate.ogm.cfg.impl.Version <clinit>  
INFO: OGM000001: Hibernate OGM 5.0.4.Final  
Mar 06, 2017 5:53:40 PM org.hibernate.search.engine.impl.ConfigContext getLuceneMatchVersion  
WARN: HSEARCH000075: Configuration setting hibernate.search.lucene_version was not specified: using LUCENE_CURRENT.  
32  
***************** destroying CassandraDAO *************************  
Mar 06, 2017 5:53:41 PM org.hibernate.ogm.datastore.cassandra.impl.CassandraDatastoreProvider stop  
INFO: OGM001602: Closing connection to Cassandra  
*********************初始化卡桑德拉多************************************
2017年3月6日下午5:53:39 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation
信息:HH000204:正在处理PersistenceUnitInfo[
名称:JPAService
...]  
2017年3月6日下午5:53:39 org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{5.0.9.Final}
2017年3月6日下午5:53:39 org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
2017年3月6日下午5:53:39 org.hibernate.cfg.Environment buildBytecodeProvider
信息:HH000021:字节码提供程序名称:javassist
2017年3月6日下午5:53:39 org.hibernate.annotations.common.reflection.java.JavaReflectionManager
信息:HCANN000001:Hibernate Commons注释{5.0.1.Final}
2017年3月6日下午5:53:39 org.hibernate.ogm.datastore.impl.DatastoreProviderInitiator initiateService
信息:OGM000016:NoSQL数据存储提供程序:org.hibernate.ogm.Datastore.cassandra.impl.cassandratastoreprovider
2017年3月6日下午5:53:39 org.hibernate.ogm.datastore.cassandra.impl.CassandraDatastoreProvider启动
信息:OGM001601:在127.0.0.1:9042连接到卡桑德拉
SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。
SLF4J:默认为无操作(NOP)记录器实现
SLF4J:参见http://www.slf4j.org/codes.html#StaticLoggerBinder 详情请参阅。
2017年3月6日下午5:53:40 org.hibernate.ogm.dialane.impl.GridDialantInitiator$GridDialantInstantiator newInstance
信息:OGM000017:网格方言:org.hibernate.ogm.datastore.cassandra.CassandraDialect
2017年3月6日下午5:53:40 org.hibernate.ogm.dialane.impl.GridDialantInitiator$GridDialantInstantiator newInstance
信息:网格方言日志已禁用
2017年3月6日下午5:53:40 org.hibernate.dialogue.dialogue
信息:HH000400:使用方言:org.hibernate.ogm.dial.impl.ogmdalect
2017年3月6日下午5:53:40 org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl makeLobCreatorBuilder
信息:HH000422:由于连接为空,因此禁用上下文LOB创建
2017年3月6日下午5:53:40 org.hibernate.id.UUIDHexGenerator
警告:HH000409:使用org.hibernate.id.UUIDHexGenerator,该生成器不生成符合IETF RFC 4122的UUID值;考虑使用Or.HiBurnt.ID.uuId生成器代替
2017年3月6日下午5:53:40 org.hibernate.boot.internal.SessionFactoryBuilderImpl$SessionFactoryOptions StateStandardImpl
警告:无法识别的hbm2ddl_自动值:关闭。支持的值包括创建、创建、删除、更新和验证。忽略
2017年3月6日下午5:53:40 org.hibernate.search.engine.Version
信息:HSEARCH000034:Hibernate搜索5.5.3.Final
2017年3月6日下午5:53:40 org.hibernate.ogm.cfg.impl.Version
信息:OGM000001:Hibernate OGM 5.0.4.Final
2017年3月6日下午5:53:40 org.hibernate.search.engine.impl.ConfigContext getLuceneMatchVersion
警告:HSEARCH000075:未指定配置设置hibernate.search.lucene\u版本:当前正在使用lucene\u。
32
*****************摧毁卡桑德拉多******************************
2017年3月6日下午5:53:41 org.hibernate.ogm.datastore.cassandra.impl.cassandradatastore提供程序停止
信息:OGM001602:关闭与卡桑德拉的连接
但是,当我在部署项目后尝试对端点执行相同的调用时,它只会给我一个空列表

以下是我设置的端点的代码:

@Path("/ioconfiguration")  
public class IOConfigurationEndPoint {  
  @EJB  
  private static IOConfigurationDAO ioConfigurationDAO;  
  @GET  
  @Produces(MediaType.APPLICATION_JSON)  
  public Response getAllIoConfigurations() {  
    ioConfigurationDAO = new IOConfigurationDAO();  
    ioConfigurationDAO.init();  
    List<IOConfiguration> list = ioConfigurationDAO.findAllIOConfiguration();  
    System.out.println(list);  
    ioConfigurationDAO.destroy();  
    return Response.status(Response.Status.OK).entity(list).build();  
  }  
}  
@Path(“/ioconfiguration”)
公共类IOConfigurationEndPoint{
@EJB
私有静态IOConfigurationDAO IOConfigurationDAO;
@得到
@产生(MediaType.APPLICATION_JSON)
公共响应GetAllioConfiguration(){
ioConfigurationDAO=新IOConfigurationD
<?xml version="1.0"?>  
<persistence xmlns="http://java.sun.com/xml/ns/persistence"  
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"  
             version="2.0">  

    <!--persistence-unit name="ogm-jpa-tutorial" transaction-type="JTA"-->  
    <persistence-unit name="JPAService">  
        <!-- Use the Hibernate OGM provider: configuration will be transparent -->  
        <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>  
<!--         <jta-data-source>java:jboss/datasources/cassandraDS</jta-data-source> -->  
        <class>com.sensorhound.aigateway.domain.Alert</class>  
        <class>com.sensorhound.aigateway.domain.DataSeriesMeta</class>  
        <class>com.sensorhound.aigateway.domain.IOConfiguration</class>  
        <class>com.sensorhound.aigateway.domain.NodeData</class>  
        <properties>  
            <property name="hibernate.transaction.jta.platform" value="JBossAS" />  
            <property name="hibernate.hbm2ddl.auto" value="off"/>  
            <property name="jboss.as.jpa.providerModule" value="org.hibernate:5.0" />  
            <property name="hibernate.ogm.datastore.provider" value="cassandra_experimental"/>  
            <property name="hibernate.ogm.datastore.host" value="127.0.0.1:9042"/>  
            <property name="hibernate.ogm.datastore.database" value="dev"/>  
        </properties>  
    </persistence-unit>  
</persistence>