Sql Hibernate-只想查询表,但它也尝试创建表

Sql Hibernate-只想查询表,但它也尝试创建表,sql,hibernate,Sql,Hibernate,我尝试创建一个简单的Hibernate示例,从数据库中读取一些文章。下面的代码显示了(已经存在的)表Art(ICL)中的文章描述。但如果调用openSession,它也会尝试创建表“Art”。我只想从现有表中读取,那么为什么它会在显示现有条目之前尝试创建article表呢 sessionObj = buildSessionFactory().openSession(); Query<Art> query = sessionObj.createQuery("from Art",Art.

我尝试创建一个简单的Hibernate示例,从数据库中读取一些文章。下面的代码显示了(已经存在的)表Art(ICL)中的文章描述。但如果调用openSession,它也会尝试创建表“Art”。我只想从现有表中读取,那么为什么它会在显示现有条目之前尝试创建article表呢

sessionObj = buildSessionFactory().openSession();
Query<Art> query = sessionObj.createQuery("from Art",Art.class);

for(Article a : query.getResultList()) {
    System.out.println(a.getDesc());
}
sessionObj=buildSessionFactory().openSession();
Query Query=sessionObj.createQuery(“来自艺术”,艺术类);
for(文章a:query.getResultList()){
System.out.println(a.getDesc());
}

在配置中使用哪些值

从文档中,您可以使用:

hibernate.hbm2ddl.auto

当 SessionFactory已创建。使用createdrop,数据库模式将 当SessionFactory显式关闭时,将删除

验证|更新|创建|创建删除

由此

1) 验证:验证架构,不更改数据库

2) 更新:更新模式

3) 创建:创建模式,销毁以前的数据

4) createdrop:在会话结束时删除架构


希望这有帮助

谢谢您的快速回复。我使用update在这种情况下,它应该只在表不存在时创建表。所以我切换到“验证”,Hibernate说“模式验证:缺少表”。所以你应该是对的,但是如果我使用update,它从表中读取数据时不会出现问题。Hibernate显示:创建表Art(Artnr int not null,Artgroup CHAR(5),Description VARCHAR(30),Price money,primary key(Artnr)),数据库中的表结构是:Artnr(PS,int,not null)Description(VARCHAR(30),not null)Price(money,null)Artgroup(CHAR(5),null)。使用UPDATE时,它创建具有空行的表。所以里面没有数据。并且查询执行正常。如果使用UPDATE,则不要删除表。然后做一些插入。它应该可以工作。用户没有创建的权限。因此,使用现有的表。我想这可能是货币类型映射的问题。。。但是我不知道(MSSQL)是否检查hibernagte配置文件create中的属性“hbm2ddl.auto”。如果是Create,则是删除模式并创建模式。