在投影ScheduledSessionWithDetail
中我想为此添加一个来自其他链接表的值我正在使用SpEL表达式,但是我想要通过表达式而不是返回剩余字段的colorcode
列工作,有谁能告诉我哪里错了?
ScheduledSessionWithDetail
@Projection(name="ScheduledSessionWithDetail",types=ScheduleSession.class)
public interface ScheduledSessionWithDetail {
Long getId();
int getStartTime();
int getEndTime();
DayOfWeek getDay();
User getCoach();
@Value("#{scheduleSession.programSchedule.level.colorCode}")
String colorCode();
}
SchduleSession.java
@Entity
public class ScheduleSession {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
private Long id;
private int startTime;
private int endTime;
private boolean enabled=true;
@OneToOne
private User coach;
@ManyToOne
private ProgramSchedule programSchedule;
@Enumerated(EnumType.STRING)
private DayOfWeek day;
//getter and setter
}
ProgramSchedule
@Entity
public class ProgramSchedule {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
private Long id;
private String name;
@JoinColumn(name="venue_id")
@ManyToOne
private Venue venue;
@JoinColumn(name="program_id")
@ManyToOne
private Program program;
private boolean enabled=true;
@OneToOne
private Term term;
}
等级
@Entity
public class Level{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String level;
private int minimumAge=0;
private int maximumAge=0;
private int duration=0;
private int capacity=0;
private String colorCode;
}
答案 0 :(得分:0)
您的ProgramSchedule
实体似乎没有引用Level
此外,在使用投影时,应使用
#{target.programSchedule.level.colorCode}
代替bean /参数名。春季博客https://spring.io/blog/2014/05/21/what-s-new-in-spring-data-dijkstra中对此进行了提及,https://docs.spring.io/spring-data/rest/docs/current/reference/html/#projections-excerpts.projections
的末尾也对此进行了简要提及