私は2つのモデルを持っています。私はREST API(Pet and Media)からデータを取得しようとしています。私はペットとメディアとの間のoneToMany関係を熱心にFetchType.EAGERアノテーションでロードしようとしていますが、MediaRepositoryに書き込むとデータは表示されません。私がそのファイルを実装していないと、メディアの関係とデータが応答に戻ってきます。実装MediaRepository.javaでSpringがFetchType.EAGERを設定してもデータをロードしない
は、GET /ペット返します
{
"id": 72,
"name": "Spot",
"description": "Annoying as hell",
"media": [], <-- why is this here only if I don't implement MediaRepository?
...
}
がMediaRepository.java実装しないと、GET /ペットが返されます。
@Entity
public class Pet implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="name")
private String name;
@Column(name="description")
private String description;
@OneToMany(cascade=CascadeType.ALL, mappedBy="pet", FetchType.EAGER, orphanRemoval=true)
private List<Media> media;
@ManyToOne
private Category category;
@Enumerated(EnumType.STRING)
private Status status;
}
{
"id": 72,
"name": "Spot",
"description": "Annoying as hell",
... (No media array in response)
}
Pet.javaを
Media.java
@Entity
public class Media implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="url")
private String url;
@Column(name="title")
private String title;
@ManyToOne
private Pet pet;
}
PetRepository.java
import org.springframework.data.jpa.repository.JpaRepository;
public interface PetRepository extends JpaRepository<Pet, Long> {
}
MediaRepository.java
import org.springframework.data.jpa.repository.JpaRepository;
public interface MediaRepository extends JpaRepository<Media, Long> {
}
あなたは春データ休息を使用していますか? –
@AlanHayはい、そうです。 – khchan
あなたはまた、データベースにどのようにマップされているデータベースのテーブル構造を追加することができますか? –