首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将本机查询的结果映射到POJO,而不需要在查询执行时在DB中创建相应的表。

将本机查询的结果映射到POJO,而不需要在查询执行时在DB中创建相应的表。
EN

Stack Overflow用户
提问于 2016-07-21 06:48:26
回答 1查看 585关注 0票数 0

我正在使用JPA的Hibernate实现(Hibernate版本: 4.2.1,JPA版本: 1.8.1)。我有一些本机查询,其结果被映射到我的自定义POJOS列表(标记为@Entity)。但是,当查询执行时,我在MySQL模式中创建了一个空表,其中包含了POJO中的属性。考虑到不可能将本机查询结果映射到POJO而不将其标记为“实体”,如何确保没有将任何表添加到现有模式中。

POJO

代码语言:javascript
复制
package abc;
@Entity
public class Myclass
{
@Id
private Integer productId;
private String productName;
public MyClass(){
}
/**getters and setters for productId and productName**/
}

用于执行本机查询代码段

代码语言:javascript
复制
List<Integer> productIdList = new ArrayList<>();
productIdList.add(1);
productIdList.add(20);
productIdList.add(34); 
List<MyClass> myList=(List<MyClass>)(entityManager.createNativeQuery("select p.productId, p.productName from products p where p.productId IN (:productIdList)",MyClass.class).setParameter("productIdList", productIdList).getResultList());
EN

回答 1

Stack Overflow用户

发布于 2016-07-26 08:09:20

我也遇到了同样的问题,因为我尝试了hibernate.hbm2ddl.auto参数的所有可能值,但都没有成功。简单地说,我希望有一个像do_nothing这样的选项,但是在文档中没有这样的选项。因此,我的解决方案是将@Table("tbl_to_remove_<YourObjectName>")添加到每个实体中,并删除所有以db中的tbl_to_remove启动的新创建的表,而且每次重新启动应用程序时都是这样。

从社区文档:这里中,列出了可能的选项

hibernate.hbm2ddl.auto在创建SessionFactory时自动验证或导出架构DDL到数据库。使用create,当SessionFactory显式关闭时,数据库模式将被删除. 例如,验证\ update _update_ create \create创建-drop

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38496896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档