当前位置: 首页 > 知识库问答 >
问题:

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

柯天宇
2023-03-14

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

package abc;
@Entity
public class Myclass
{
@Id
private Integer productId;
private String productName;
public MyClass(){
}
/**getters and setters for productId and productName**/
}
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());

共有1个答案

徐麒
2023-03-14

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

 类似资料: