Ниже мои лица. Я пытаюсь вызвать ChannelGenre.findByGenreId, чтобы получить ChannelGenre со списком каналов. Но я получил правильные данные после сохранения в первый раз, и я получил только ChannelGenre с пустым списком каналов и другими правильными свойствами в любое другое время. И я могу также получить правильный список, когда я вызываю Channel.findAll (). Что не так с моими кодами?
@Entity
public class ChannelGenre extends Model {
@OneToMany(mappedBy = "channelGenre", cascade = CascadeType.ALL)
private List<Channel> channelList;
@Required
private String genreId;
@SerializedName("genreName")
@Expose
@Required
private String genreName;
private Boolean isAdult;
public static void renewChannelGenre(ChannelGenre channelGenre) {
ChannelGenre cg = ChannelGenre.find("byGenreId", channelGenre.getGenreId()).first();
if (null != cg) {
ChannelGenre.deleteByGenreId(channelGenre.getGenreId());
}
channelGenre.save();
}
public static ChannelGenre findByGenreId(String genreId) {
return (ChannelGenre) ChannelGenre.find("select cg from ChannelGenre cg where cg.genreId = '" + genreId + "'").fetch().get(0);
}
public static void deleteByGenreId(String genreId) {
ChannelGenre.delete("delete from ChannelGenre cg where cg.genreId = '" + genreId + "'");
}
public static List<ChannelGenre> findAllGenreName() {
return ChannelGenre.find("select distinct cg from ChannelGenre cg order by cg.genreId").fetch();
}
@Override
public String toString() {
return "ChannelGenre [channelList=" + channelList + ", genreId=" + genreId + ", genreName=" + genreName + ", isAdult=" + isAdult + "]";
}
}
@Entity
public class Channel extends Model {
@SerializedName("channelId")
@Expose
private String channelId;
@SerializedName("name")
@Expose
private String name;
@ManyToOne
private ChannelGenre channelGenre;
}
данные, которые я получил:
В первый раз я звоню.
ChannelGenre [channelList=[Channel [channelId=600, name=Sports Schedule Highlights], Channel [channelId=610, name=Now 610], Chann..., genreId=G07, genreName=Sports, isAdult=false]
В другое время.
ChannelGenre [channelList=[], genreId=G07, genreName=Sports, isAdult=false]