我将此查询编写为否定查询并向数据库询问选择语句,但我没有收到列表中的数据
public interface NoteRepository extends JpaRepository<PrivateNote, Long> {
@Query(nativeQuery = true, value =
"SELECT p.mCategory " +
"FROM privatenote as p " +
"WHERE p.userId = :userId AND p.sharing = :sharing " +
"GROUP BY p.mCategory"
)
List<MCateogry> findGroupBymCategory(@Param("userId") Long userId, @Param("sharing")
boolean sharing);
}
发生了以下错误
org.springframework.core.convert.ConverterNotFoundException:找不到能够从类型[org.springframework.data.jpa.repository.query.AbstractJpaQuery$TupleConverter$TupleBackedMap]转换为类型[com.daehwan.notebook.model.PrivateNote]的转换器
这里是实体
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MCategory{
private String mCategory;
}
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class PrivateNote {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false, length = 100)
private String title;
@JsonProperty("m_category")
@Column(nullable = false, length = 30)
private String mCategory;
@JsonProperty("s_category")
@Column(nullable = false, length = 30)
private String sCategory;
@Lob
private String content;
@Column(nullable = false)
private boolean sharing;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "userId")
private User user;
@CreationTimestamp
private Timestamp createDate;
private Timestamp updateDate;
}
如何更改以接收数据?
我认为您应该通过直接执行SQL查询来检查它是否正确工作。
看起来您的查询结果是一个< code>String(而不是< code>MCategory),也许没有必要使用< code>group by
public interface NoteRepository extends JpaRepository<PrivateNote, Long> {
@Query(nativeQuery = true, value =
"SELECT p.mCategory " +
"FROM privatenote as p " +
"WHERE p.userId = :userId AND p.sharing = :sharing " +
"GROUP BY p.mCategory"
)
List<String> findGroupBymCategory(@Param("userId") Long userId, @Param("sharing")
boolean sharing);
}
@SqlResultSetMaps
的上下文中使用,用于将结果映射到非实体POJO对象@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@NamedNativeQuery(name ="Category",
query =
"SELECT p.m_category" +
"FROM privatenote as p " +
"WHERE p.userId = :userId AND p.sharing = :sharing " +
"GROUP BY p.m_category",
resultSetMapping = "CategoryMapping"
)
@SqlResultSetMapping(name="CategoryMapping",
classes = {
@ConstructorResult(targetClass = MCateogry.class,
columns = {@ColumnResult(name = "m_category")
})
})
public class PrivateNote {
...
}
@Repository
public interface PrivateNoteRepository extends JpaRepository<PrivateNote, Long> {
@Query(name = "Category", nativeQuery = true)
List<MCateogry> findGroupBymCategory(@Param("userId") Long userId, @Param("sharing") boolean sharing);
}
我有一个用hibernate持久化的带有DateTime属性的实体 对于常规的spring-data-jpa生成的查询来说,这一切都很好。 我正在尝试添加自定义本机查询 我得到的错误是当试图调用这个是 这与我在将自定义类型映射添加到实体之前使用常规spring-data Finder时得到的错误相同 如何使spring-data-jpa/hibernate使用参数到本机查询的自定义类型映射?
当我运行npm start时,我看到错误。 我尝试过这个方法,但没有成功:https://techoverflow.net/2019/04/01/how-to-fix-npm-err-missing-script-start/ {“private”:true,“scripts”:{“dev”:“npm运行development”,“development”:“cross-env node_env=
问题内容: 就像标题所说的那样,我对Eclipse JVM启动器有问题。昨晚,一切正常,据我所知,此后我的电脑上没有任何变化。但是,我今天早上醒来,发现当我在Eclipse中运行任何项目时,我都会收到此错误: 我已经验证了 Path 变量()的完整性,现在,您可能会注意到,我的jdk的版本为65。我的JRE和Java安装也是如此。我不明白为什么eclipse使用jre60。我还检查了首选项,并且也
正如标题所说,我对EclipseJVM启动器有一个问题。昨晚,一切都很好,据我所知,从那时起,我的电脑就没有任何变化。然而,我今天早上醒来发现,当我在eclipse中运行任何项目时,我收到了以下错误: 我已经验证了Path变量的完整性()现在,您可能会注意到,我的jdk版本是65。我的JRE和java安装也是如此。我不明白eclipse为什么要使用jre 60。我还检查了首选项,并更改了jre版本
我想在我的查询中调用一个函数。例如: 在我的myTableRepository中,我可以执行以下操作: 但向语句添加函数调用不起作用: 有没有办法让它在JPQL中工作? 我的错误:
问题内容: 我有一个本机SQL查询,如下所示: 问题是,Hibernate的解释,,作为参数,并希望我们给值,, 但是我不想让Hibernate这样解释,所以我想逃避冒号。 怎么做 ? 问题答案: 在Hibernate中,转义以开头。但是在Java中,您还必须逃脱另一个。因此,所有内容都需要替换为。最后,您得到: