我们有一个应用程序,它使用Spring数据JPA存储库注入EJB。springframework。数据jpa。存储库。cdi。JpaRepositoryExtension发挥了神奇的作用。
它在CDI中查找EntityManager,保存以备后用,使用@Repository
注释查找Spring Data JPA存储库,并保存它们的类型以备后用。当CDI初始化时,JpaRepositoryExtension::afterBeanDiscovery
运行并执行正确的bean创建和插入CDI。这在JBoss EAP6.2/6.3/6.4下运行得非常好。
JBoss EAP 7.1html" target="_blank">构建在WildFly 11上,Hibernate版本现在是5.1。JPA引导代码在JBoss和Hibernate JPA提供程序中进行了重构。由于这种重组,EntityManager在运行时不在CDI中:
org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.processBean(ProcessBean<X>)
这最终导致...
org.springframework.data.jpa.repository.cdi.JpaRepositoryExtension.createRepositoryBean(Class<?>, Set<Annotation>, BeanManager)
...要抛出:
javax。企业注射UnsatisfiedResolutionException:无法解析“javax”的bean。坚持不懈带有限定符[@javax.enterprise.inject.Default(),@javax.enterprise.inject.Any()]的EntityManager。在org。springframework。数据jpa。存储库。cdi。JpaRepositoryExtension。在org上创建repositorybean(JpaRepositoryExtension.java:120)。springframework。数据jpa。存储库。cdi。JpaRepositoryExtension。afterBeanDiscovery(JpaRepositoryExtension.java:96)
有没有人成功地将Spring数据JPA部署到JBoss EAP 7.1或WildFly 11上,并在CDI中创建了JPA存储库?
编辑:我有一个CDI制作人,在EAP 6.2/3/4中运行良好:
@Produces
@Dependent
@PersistenceUnit( unitName="** Our PU Name **" )
private EntityManagerFactory entityManagerFactory;
.
.
.
@Produces
@RequestScoped
@PersistenceContext( type = PersistenceContextType.EXTENDED )
public EntityManager createEntityManager( EntityManagerFactory emf )
{
EntityManager em = emf.createEntityManager();
return em ;
}
您可以尝试在您的实体管理器中使用/添加一些注释来解决问题。您尝试过吗:@Produces
这可能适用于eap 7.1
@Depant
@Persitence Context
Private EntityManager entityManager;
我的问题的解决方案是两个小变化:
我的制作人阶级:
import javax.enterprise.context.ApplicationScoped ;
import javax.enterprise.context.Dependent ;
import javax.enterprise.context.RequestScoped ;
import javax.enterprise.inject.Disposes ;
import javax.enterprise.inject.Produces ;
import javax.persistence.EntityManager ;
import javax.persistence.EntityManagerFactory ;
import javax.persistence.PersistenceUnit ;
@ApplicationScoped
public class CdiConfig
{
/*
* Entity Manager Factory
*/
@Produces
@Dependent
@PersistenceUnit(unitName = "stafftrack_data_access")
private EntityManagerFactory entityManagerFactory ;
/*
* Entity Manager
*/
@Produces
@RequestScoped
public EntityManager createEntityManager( )
{
EntityManager em = entityManagerFactory.createEntityManager() ;
return em ;
}
public void close( @Disposes EntityManager entityManager )
{
entityManager.close() ;
}
}
这一章将介绍如何把Spring Data扩展到其他的框架中。接下来让我们看看如何将Spring Data整合到Spring MVC中。
我正在尝试spring-data-r2dbc。我正在Postgresql上尝试这个。我以前尝试过spring data mongodb Responsive。我忍不住把两者都比较了一下。 我看到还不支持查询派生。但我想知道是否有的等价物。这样我就会实时收到数据库更改的通知。Ca任何人都可以共享与此相关的任何代码示例。 我理解底层数据库应该支持这一点。我相信Postgresql确实支持这种使用逻辑解
你尝试实现的类型很可能已经包含在数据类型中. 如果不包括新的数据类型,本手册将说明如何自己编写它. Sequelize 不会在数据库中创建新的数据类型. 本教程说明了如何使 Sequelize 识别新数据类型,并假定这些新数据类型已在数据库中创建. 要扩展 Sequelize 数据类型,请在创建 Sequelize 实例之前进行. 示例 在此示例中,我们将创建一个名为 SOMETYPE 的类型,该
数据类可以扩展密封类,但不是,我不确定它们如何/是否能够接受“supertype”密封类所需的参数。 > 从密封类扩展常规类可以很好地编译。 但是,将其更改为数据类并不编译(“数据类主构造函数必须只具有属性(val/var)参数”)。 否则,我的选择似乎是使用选项1处理我自己的数据类功能(copy、hashcode、equals等),或者通过使用选项4打开超类型属性来进行折衷。
问题内容: 我有一个标准的Spring数据JPA和Spring数据Rest设置,可以正确地将关联返回为指向正确资源的链接。 但是,在 某些 请求中,我希望扩展与“ otherDomain”的关联(因此客户端不必执行N + 1请求即可获取完整数据)。 是否可以配置Spring Data Rest以这种方式处理响应? 问题答案: 默认响应必须保持不变,以确保请求的有效负载与返回的请求对称。但是,Spr
4.将我们的20个工作的整体罐子分解成单独的spring bootüber罐子并不是一项简单的任务--任何想法/想法/最佳实践都不容易实现。 最好的,埃拉德