我有2个实体春数据休息应用双向@多对一/ @一对多的关系:如何更新通过REST从反侧
@Entity
public class Question {
...
@OneToMany(mappedBy = "question")
private Set<Answer> answers = new HashSet<>();
...
}
@Entity
public class Answer {
...
@ManyToOne
Question question;
...
}
和Spring数据仓库为两个实体:
@RepositoryRestResource
public interface QuestionRepository extends PagingAndSortingRepository<Question, Long> {
}
@RepositoryRestResource
public interface AnswerRepository extends PagingAndSortingRepository<Answer, Long> {
}
假设我有问题与id 1和两个答案与ids 1和2. 然后我能够链接他们这样的:
curl -v -X PUT -H "Content-Type: text/uri-list" -d "http://localhost:8080/questions/1" http://localhost:8080/answers/1/question
curl -v -X PUT -H "Content-Type: text/uri-list" -d "http://localhost:8080/questions/1" http://localhost:8080/answers/2/question
但不喜欢这样的:
curl -v -X PUT -H "Content-Type:text/uri-list" -d $'http://localhost:8080/answers/1\nhttp://localhost:8080/answers/2' http://localhost:8080/questions/1/answers
春数据处理休息与ID 1获取问题的情况下,加入了两个答案到其设置和调用休眠有关问题的合并最后一个卷曲的请求。
问题是,这些更改被忽略,因为它们是由逆(不是关系的所有者)一方制成的。据我所知,你不能在冬眠期间改变拥有者或在双方之间进行一对多/多对一的关系更新。
这是否意味着我将不得不逐一更新答案? 是否有可能配置Spring Data Rest,以便它将更新来自所有者的关系,以便通过休眠来保持它?
JPA中的关系始终是单向的,除非您在两个方向上将父项与子项相关联。 – 2015-04-02 05:40:12
你可以发布更具体的你想要的东西吗? – 2015-04-02 05:40:40
不应该为'@ OneToMany'注释添加一个'cascade'属性吗? – zeroflagL 2015-04-02 18:41:17