【发布时间】:2021-06-05 10:22:14
【问题描述】:
我有两个弹簧靴实体。会议设置和会议时间。 MeetingSettings 可以有无限数量的 MeetingTimes。保存它们没有任何问题。 MeetingTimes 将 meetingName 属性作为来自 MeetingSettings 的外键。我现在要做的是按名称获取所有 MeetingTimes,但出现以下错误:
Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'com.cbc.coorporateblinddateservice.entities.dates.MeetingTime'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.lang.Long] for value 'Testtewhuete'; nested exception is java.lang.NumberFormatException: For input string: "Testtewhuete"]
据我了解,它试图将我提供的 String meetingName 转换为 Long 值的错误,但我没有将它们与 meetingName 映射,且 meetingName 在 MeetingSettings 中,数据库为字符串。那么为什么会出现这个错误呢?我找不到任何解决方案。有人可以看看我的代码吗?
MeetingSettings 实体:
@Entity
@Table(name = "meeting_settings")
@Setter
@Getter
public class MeetingsSetting implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "meeting_name", unique = true)
private String meetingName;
@Column(name = "meeting_url")
private String meetingUrl;
@Column(name = "meeting_pw")
private String meetingPw;
@JsonManagedReference
@OneToMany(mappedBy = "meetingName", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private Set<MeetingTime> meetingTime = new HashSet<>();
}
会议时间:
@Entity
@Table(name = "meeting_times")
@Getter
@Setter
public class MeetingTime implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "meeting_date")
private String date;
@Column(name = "start_time")
private String startTime;
@Column(name = "end_time")
private String endTime;
@JsonBackReference
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "meeting_name" , referencedColumnName = "meeting_name")
private MeetingsSetting meetingName;
}
MeetingTimeService 我正在做的获取:
@Service
public class MeetingTimeService {
@Autowired
MeetingTimeRepository meetingTimeRepository;
public List<MeetingTime> findMeetingTimeByName(MeetingTime meetingName){
return meetingTimeRepository.findMeetingTimeByMeetingName(meetingName);
}
}
MeetingTimeRepository:
@Repository
public interface MeetingTimeRepository extends JpaRepository<MeetingTime, Long> {
List<MeetingTime> findMeetingTimeByMeetingName(MeetingTime meetingName);
}
【问题讨论】:
标签: java spring spring-boot spring-mvc