我正在尝试实现一个自定义的 Spring 存储库。我有界面:
public interface RataRepositoryCustom {
List<RataEntity> getRateFromTipoFrequenzaRimborso(String tipoFrequenzaRimborso);
}
其中RataEntity类是
@Entity
@Table(name = "rata")
public class RataEntity implements Serializable {
private static final long serialVersionUID = -4278591894832763005L;
@Id
@Column(name = "COD_RATA")
private Integer codRata;
@Column(name = "COD_RIMBORSO")
private String codRimborso;
@Column(name = "DATA_PROROGA")
private String dataProroga;
@Column(name = "PERC_CALCOLO")
private String percCalcolo;
@Column(name = "PERC_OUTSTANDING")
private String percOutstanding;
@Column(name = "DATA_SCADENZA")
private Date dataScadenza;
@Column(name = "IMPORTO_RATA")
private Double importoRata;
... getters and setters...
}
它的实施
@Repository
@Transactional(readOnly = true)
public class RateRepositoryCustomImpl implements RataRepositoryCustom {
@PersistenceContext
EntityManager entityManager;
@Override
public List<RataEntity> getRateFromTipoFrequenzaRimborso(String tipoFrequenzaRimborso) {
StringBuilder querySql = new StringBuilder();
querySql.append("SELECT distinct e FROM RataEntity e, RimborsoEntity r where e.codRimborso=r.codRimborso ");
if(tipoFrequenzaRimborso.equals("Ann"))
querySql.append("and r.freqRimborso='Annual'");
else if (tipoFrequenzaRimborso.equals("Sem"))
querySql.append("and r.freqRimborso='Semestral'");
else if (tipoFrequenzaRimborso.equals("Event"))
querySql.append("and r.freqRimborso='Ad event'");
Query query = entityManager.createQuery(querySql.toString());
return query.getResultList();
}
}
和以下存储库类
@Repository public interface RataRepository extends JpaRepository<RataEntity, Integer>, RataRepositoryCustom {
}
当我运行我的应用程序时,我得到这个错误:
未能创建方法公共摘要的查询java.util.Listit.aubay.PreliosPAN.repositories.RataRepositoryCustom.getRateFromTipo频率zaRimborso(java.lang.字符串)!没有找到RataEntity类型的属性getRateFromTipo频率zaRimborso!
Spring Framework似乎试图在实体中找到一个方法名为的属性。如果我在这个链接上查看官方文档
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.custom-implementations
我们有一个通用的例子,其中方法名是
void someCustomMethod(用户用户)
我在其他Entity对象上实现了相同的代码,Spring Framework可以与任何方法名一起正常工作。仅对于示例的类,我有错误,但我无法理解为什么。有什么想法吗?
我解决了问题。
自定义仓库 RateRepositoryCustomImpl 的实现类名称的初始部分
与接口
RataRepositoryCustom 的名称不同
实现类的正确名称必须是
RataRepositoryCustomImpl
Regard
我试图实现一个自定义Spring存储库。我有接口: 实施: 和“主”存储库,扩展我的自定义存储库: 我使用的是Spring Boot,根据文档: 默认情况下,Spring Boot将启用JPA存储库支持,并查看@SpringBootApplication所在的包(及其子包)。 当我运行应用程序时,出现以下错误: 组织。springframework。数据映射。PropertyReferenceEx
我正在尝试将Spring Data JDBC与MyBatis一起使用。我对使用CrudRepository提供的开箱即用的CRUD方法以及编写在MyBatis XML文件中定义的其他自定义查询感兴趣。 通过阅读jdbc.mybatis的说明,听起来我需要做的只是创建一个来实现我想要的方法(遵循“语句的名称是通过将实体类型的完全限定名与mapper连接来构造的”这一规则),并向我的添加一个方法签名。
我有实体,并且我希望获得按排序的所有项,但是出现错误消息的属性start。 错误日志
我有一个实体Person,它有一个属性Name。name没有被标记为实体。对于Name类,我有一个属性转换器,它通过名字和姓氏的字符串连接创建一个全名。所以对于个人实体,列名是字符串类型。 这是可行的。但现在我想扩展我的个人存储库。我想按她的姓找人。但是 或 不起作用。我得到以下例外: 我怎样才能解决这个问题?谢谢和问候 编辑:
下面的代码没有给我正确的答案。 这给出; 一般来说,若给定了点的数组列表,我们如何在数组中找到特定点的索引?