I am newbie for Spring boot especially for Spring Boot Data JPA
I want to write JPA method without @Query
I know how to select through @Query However, there are no much about pure data JPA method like
Integer findByLevelPointBetweenSomethingAndSomething2(Integer userId);
@Entity
@Table(name = "point")
public class Point {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "point_id", nullable = false)
private Integer pointId;
@Column(name = "user_id", nullable = false)
private Integer userId;
@Column(name = "point", nullable = false)
private Integer point;
@Column(name = "user_account_point_type_id", nullable = false)
private Integer pointTypeId;
@Column(name = "date_created", nullable = false)
private Date createdDate;
This is Point Entity which store point
and Level entity
@Entity
@Table(name = "level", schema = "public")
public class Level {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "level_id", nullable = false)
private Integer levelId;
@Column(name = "user_id", nullable = false)
private Integer userId;
@Column(name = "level_type_id", nullable = false)
@JoinColumn(name ="level_type_id")
private Integer levelTypeId;
@Column(name = "reg_date", nullable = false)
private Date regDate;
and level type is consisted as 4 type (1-bronze/2-silver/3-gold/4-platinum) i level type is checked when point is stored
and this is the query that i make
select ult.level_type_id from level_type ult where (select sum(up.point) from level ull,point up,level_type ult where ull.level_type_id=ult.level_type_id and ull.user_id=up.user_id and up.user_id= 73) between ult.level_start_point AND ult.level_end_point
result is level_type as Integer form
this query i want to make as JPA @Query() X!!!
LIKE THIS @Repository
public interface LevelTypeRepository extends
JpaRepository<LevelType,Integer> {
Integer findByLevelPointMaxBetweenLevelPointMinAndLevelPointMax(Integer
userId);
}
However it is not working and don't know how to join through three tables with one parameters Moreover, parameter(user_id) between level_start_point and level_end_point
Is it difficult to express through JPA ?