Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Crudepository是否可能有多个保存_Java_Spring - Fatal编程技术网

Java Spring Crudepository是否可能有多个保存

Java Spring Crudepository是否可能有多个保存,java,spring,Java,Spring,我有下面的存储库,它可以让我获得许多密切相关的不同实体,但是足够小,我不希望每个实体都有自己的回购协议。其中一些是如何保存的,一些是通过父AGG的级联保存的,另一个是通过调用save(fooBar)手动保存的 @存储库 @交易的 公共接口foobarepository扩展了crudepository{ FooBar findBySomeField(SomeField SomeField); @查询(“从某个CloselyRelatedFoobaritem p中选择p”) public List

我有下面的存储库,它可以让我获得许多密切相关的不同实体,但是足够小,我不希望每个实体都有自己的回购协议。其中一些是如何保存的,一些是通过父AGG的级联保存的,另一个是通过调用save(fooBar)手动保存的

@存储库
@交易的
公共接口foobarepository扩展了crudepository{
FooBar findBySomeField(SomeField SomeField);
@查询(“从某个CloselyRelatedFoobaritem p中选择p”)
public List findAllSomeCloselyRelatedItem();
}
我现在有一个新的,也需要手动保存,我希望避免只为这个项目创建一个新的回购,因为它是密切相关的,只会与FooBar一起使用,但与FooBar没有直接关系

@Repository
@Transactional
public interface FooBarRepository extends CrudRepository<FooBar, Long> {
    FooBar findBySomeField(SomeField somefield);

    @Query("SELECT p FROM ConceptuallyRelatedToFooBarButSavedThroughCascade p")
    public List<ConceptuallyRelatedToFooBarButSavedThroughCascade> findAllConceptuallyRelatedToFooBarButSavedThroughCascade();

    public OtherItem save(OtherItem otherItem); //Springs doesn't like this because it's looking for a field on FooBar called save.
}
@存储库
@交易的
公共接口foobarepository扩展了crudepository{
FooBar findBySomeField(SomeField SomeField);
@查询(“通过级联p从概念相关数据库中选择p”)
公共列表FindAllConceptually通过Cascade()保存的对象相关;
public OtherItem save(OtherItem OtherItem);//Springs不喜欢这样,因为它正在FooBar上查找名为save的字段。
}

但是Spring不喜欢这个,因为它正在寻找一个名为SaveonFoobar的字段@查询不起作用,因为没有插入概念。我试着用另一个名字命名,希望能绕开它,但也没用。解决这个问题的唯一方法是创建一个全新的回购,还是一个回购可以保存多个实体?

为什么不创建一个特定的回购?(顺便说一句,这就是它的工作原理)主要是因为必须将一系列不同的回购协议传递给域服务,以便它们每个都可以进行一次调用,这开始是一种痛苦。有很多方法可以解决这个问题,但我一直试图让事情简单化。
@Repository
@Transactional
public interface FooBarRepository extends CrudRepository<FooBar, Long> {
    FooBar findBySomeField(SomeField somefield);

    @Query("SELECT p FROM ConceptuallyRelatedToFooBarButSavedThroughCascade p")
    public List<ConceptuallyRelatedToFooBarButSavedThroughCascade> findAllConceptuallyRelatedToFooBarButSavedThroughCascade();

    public OtherItem save(OtherItem otherItem); //Springs doesn't like this because it's looking for a field on FooBar called save.
}