我有一个Spring Entity类,如下所示。
@Entity
@Table(name = "Calendar_Month")
public class Calendar_Month {
@Id
@Transient
private int Calendar_Month_ID;
private String Calendar_Year;
private String Calendar_Month;
private String Calendar_Country;
使用相应的getter和setter。
我为此表访问编写了一个Spring数据jpa存储库,如下所示。
@Resource
public interface CalendarMonthRepository extends CrudRepository<Calendar_Month, Long> {
}
但我想使用Calendar_Month
值读取所有记录。但Calendar_Month
不是主键。所以我想知道如何实现这一目标。
有人可以帮我这个。
答案 0 :(得分:2)
您应该可以使用query methods 像这样
@Repository
public interface CalendarMonthRepository extends CrudRepository<Calendar_Month, Long> {
List<Calendar_Month> findByCalendar_Month(String calendar_Month)
}
您可以从Spring Data documentation找到以这种方式创建的查询类型。
答案 1 :(得分:1)
您已使用@Id标记了Calendar_Month_ID。注释@Id&#34;指定实体的主键。&#34;。生成Calendar_Month_ID主键,或将@Id注释移动到此实体的实际主键。在CalendarMonthRepository中,您应该能够创建如下方法:
public CalendarMonth findByCalendarMonthId(Long calendarMonthId)
创建CrudRepository方法: https://docs.spring.io/spring-data/data-commons/docs/1.6.1.RELEASE/reference/html/repositories.html
P.S。检查java variableNamingConvention:Variable naming conventions in Java?