我使用spring-data-jpa来访问我的数据。我需要一种方法来分离一个Object并将其存储为一个新的数据库行。我的方法目前是向存储库添加detach
方法,但为此,我需要EntityManager
。我还没有找到一种(好的)获得它的方法......任何想法?
@Repository
public interface InteractionRepository
extends JpaRepository<Interaction, Long>,
DetatchableItemRepository{}
public interface DetatchableItemRepository {
void detach(Interaction clone);
}
public class DetatchableItemRepositoryImpl implements DetatchableItemRepository {
@Autowired
EntityManager em;
public void detach(Interaction clone) {
em.detach(clone);
clone.id=null;
em.persist(clone);
}
}
然而,春天死了这个错误:
由以下原因引起:org.springframework.beans.factory.BeanCreationException:创建名称为&#39; interactionRepository&#39;的init时出错:init方法的调用失败;嵌套异常是org.springframework.data.mapping.PropertyReferenceException:找不到类型Interaction的属性分离!
引起:org.springframework.data.mapping.PropertyReferenceException:找不到类型Interaction的属性分离!
答案 0 :(得分:0)
您对自定义存储库使用了错误的名称约定,请尝试以下操作:
interface SomeRepositoryCustom{
someMethod();
}
//XXXRepository - any base spring data repository
interface SomeRepository extends<T ,ID> extend XXXRepository , SomeRepositoryCustom {
.......
}
public class ARepositoryImpl implement SomeRepositoryCustom{
@Overide
someMethod(){
....
}
spring数据使用自定义存储库和主存储库的名称约定。(请参阅名称Adding custom behavior to single repositories)
如果你有一些SomeRepository,它扩展了一些基础Spring数据存储库,并且想要添加自定义行为,那么它应该是:
{{1}}