0

我有以下存储库,可以让我获得许多密切相关的不同实体,但足够小,我宁愿不要将它们中的每一个都放在自己的存储库中。由于这些是如何保存的,一些是通过父 Agg 的级联保存的,另一个是通过调用 save(fooBar) 手动保存的;

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

    @Query("SELECT p FROM SomeCloselyRelatedFooBarItem p")
    public List<SomeCloselyRelatedFooBarItem > findAllSomeCloselyRelatedItem();
}

我现在有一个新的也需要手动保存,我希望避免只为这个项目创建一个新的 repo,因为它密切相关,并且只会与 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.
}

但是 Spring 不喜欢这样,因为它在 FooBar 上寻找一个名为 save 的字段。@Query 不起作用,因为没有插入概念。我已经尝试命名保存另一个名称以希望绕过它,但这也不起作用。解决这个问题的唯一方法是必须创建一个全新的存储库,还是一个存储库可以保存多个实体?

4

0 回答 0