私は関係のの所有者のエンティティの子供のコレクションを取得したい。 私はこれら2つのエンティティがあります。JPAの1対多の関係 - @トランザクション - - 子供のコレクションを取得
@Entity
@Table(name = "commande")
public class Commande implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "name")
private String name;
@OneToMany(mappedBy = "commande")
@JoinColumn(name= "papa_id")
@JsonIgnore
private Set<Piece> pieces = new HashSet<>();
@Entity
@Table(name = "piece")
public class Piece implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "ref")
private String ref;
@ManyToOne
private Commande commande;
とリソースを:
@RequestMapping(value = "/papas/{id}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
@Transactional
public ResponseEntity<Papa> getPapa(@PathVariable Long id) {
log.debug("REST request to get Papa : {}", id);
Papa papa = papaRepository.findOne(id);
papa.getEnfants().size();
...
}
私は.size()仕事をするために@Transactionalを入れていた(そう、私は例外を持っています) 。 これは機能します。 しかし、別の方法では、私は1つのランファンエンティティを削除した場合、その後、私は再びgetPapaを呼び出す場合、私はエラーを取得しています)が(.size durint:
Unable to find com.myapp.stagiaireproject.domain.Enfant with id 3
は、それが閉じられていないトランザクションの問題ですか?
ありがとう、悪いpactriceのための権利。私のアプリケーションは、休止状態のために第2レベルのキャッシュを使用します。だから私がコードをサービスクラスに移すと、pbは終了しますか? – user1260928
私はそれが問題を解決すると思います。そしてPBは何ですか? –