我想用本机查询的结果填充数据传输对象类。但我收到以下错误:
nested exception is org.hibernate.MappingException: Unknown entity: br.com.cpb.gsa.dto.UserDTO
这是我的DTO课
package br.com.cpb.gsa.dto;
import java.io.Serializable;
public class UserDTO implements Serializable {
private static final long serialVersionUID = 4406975982782060793L;
private Integer id_Usuario;
private String login;
public UserDTO(Integer id_Usuario, String login) {
this.id_Usuario = id_Usuario;
this.login = login;
}
public Integer getId_Usuario() {
return id_Usuario;
}
public void setId_Usuario(Integer id_Usuario) {
this.id_Usuario = id_Usuario;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
}
这是我的原生查询。这是一个简单的查询:
import br.com.cpb.gsa.dto.UserDTO;
@Repository
public class UserRepositoryImpl implements UserCustomRepository {
@PersistenceContext
private EntityManager em;
@Override
public UserDTO findById(Integer id) {
String query = " select au.id_Usuario, "
+ " au.login"
+ " from Adm_Usuario au"
+ " where au.id_Usuario = 1";
Query natQuery = em.createNativeQuery(query, UserDTO.class);
UserDTO userDTO = (UserDTO) natQuery.getSingleResult();
return userDTO;
}
}
我使用的是Spring Data JPA,但我知道在hibernate中存在一个方法setResultTransformer,但我在JPA中找不到类似的方法。
在我的例子中,我需要使用本机查询,因为在其他查询中会使用表值函数。
预测是你正在寻找的东西。
当使用jpa本机查询 事务传播是我们正在使用的正确jpa的唯一特性吗? 在我的意见中,我就像使用普通的旧jdbc pluc jpa事务传播 我正在阅读PRO JPA一书,根据我的理解 当我们使用JPA本机查询获取一组标量值时(与我们使用jdbc的方式很相似),实际上没有托管实体和持久性上下文的概念。当我们通过本机查询检索实体时,情况会发生变化。
我有4个选项的下拉列表。我希望根据从不同字段中选择的值预先填充这些选项。不同的领域是“国家”领域。 如果选择了国家“A”或国家“b”,我希望下拉列表填充选项1。如果是另一个国家,请填写选项2。 提前谢谢
问题内容: 我有要查询的模型(称为“活动”)(使用Mongoose)。他们的架构如下所示: 当我询问他们,我填充,,,和字段(所有引用)。在那之后,我也深入了这个领域。这是我的查询代码: 这已经是一个相对复杂的查询,但是我需要做更多。如果它碰到了声明的一部分,我 还 需要确保的字段等于字符串。我尝试使用,但是由于必须先填充事件,因此无法查询其任何字段。我还需要在其他多个查询中实现相同的目标。 如我
问题内容: JPA()中的本机查询是否支持缓存? 我正在填写自己的数据传输对象,因为sql查询会联接多个表,并且仅从表中获取几个列。 问候 问题答案: 这是可能的,但 您必须使用显式或。 也可以看看 缓存SQL查询问题 hibernate:真正了解二级和查询缓存
我需要通过在Hibernate中执行本机查询获得结果集。虽然我使用的是EntityManager,但查询和结果集可能不是实体。 当我尝试下面的代码时,我得到了一个结果。因为我要求的是一个有值的结果。(Hibernate JPA) 结果是:爱丽丝 当我试图从相同的代码中获得多个select out(查询为select name)时,指定来自fresher_test(其中id=1) 这有一种方法,我可