草庐IT

java - 在 spring data jpa 中使用多个 entitymanagerfactory 配置多个数据库

我想在spring4中为2个不同的数据库(postgres和sqlserver)配置2个实体管理器工厂。persistence.xml包含2个数据库的2个持久化单元:org.hibernate.jpa.HibernatePersistenceProviderorg.hibernate.jpa.HibernatePersistenceProviderspring-context.xml包含2个数据源和2个实体管理器工厂:classpath*:META-INF/persistence.xmlclasspath*:META-INF/persistence.xml当我运行该应用程序时,它无法创

java - 如何在 JPA 列中使用自定义类型?

我有一个类:publicclassEmail{privateStringname;privateStringdomain;publicStringtoString(){returnname+"@"+domain;}}我想在JPA专栏中使用它:@EntitypublicclassUser{@IdprivateIntegerid;privateEmailemail;}Hibernate是这样说的:org.hibernate.MappingException:Couldnotdeterminetypefor:com.XXX.Email如何让它理解我的自定义类型。我认为这很简单,但在文档中找不

java - 如何计算通用 JPA DAO 中 JPA 2 CriteriaQuery 的行数?

我是JPA的新手,想实现一个通用的JPADAO,需要找到查询结果集的行数以实现分页。在网上搜索后,我找不到实用的方法来做到这一点。这是许多文章中建议的代码:publicLongfindCountByCriteria(CriteriaQuerycriteria){CriteriaBuilderbuilder=em.getCriteriaBuilder();CriteriaQuerycountCriteria=builder.createQuery(Long.class);RootentityRoot=countCriteria.from(criteria.getResultType())

java - 查询的 FROM 子句具有类 XXX 但没有别名

在我的GAE项目中,我从JPA1.0开始,这段代码运行良好:Queryquery=em.createQuery("SELECTFROMMyImage"+"WHEREm_Email=:email"+"Andm_Password=:password",MyImage.class);query.setParameter("email",email);query.setParameter("password",password);但现在我使用JPA2.0我得到:FROMclauseofqueryhasclassutil.MyImagebutnoaliasorg.datanucleus.stor

java.lang.NoSuchMethodError : javax. persistence.JoinColumn.foreignKey

请帮我解决这个错误。按照下面的代码:这是我的类(class)/实体人物:packageentities;importjava.util.Calendar;importjava.util.List;importjavax.persistence.CascadeType;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.FetchType;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;

java - @EnableTransactionManagement 的范围是什么?

我试图了解在多个JavaConfig上下文的情况下放置@EnableTransactionManagement注释的正确位置?考虑以下场景:我在JPAConfig.java和AppConfig.java中有JPA配置和一组服务bean。然后我在RootConfig.java中编写整个应用程序配置。我在JPAConfig.java中定义了事务管理器并启用了对JPA存储库的扫描-因为那些暴露了事务行为,我将@EnableTransactionManagement放在JPAConfig上并且它起作用了。但是,一些服务bean也需要有事务方法,例如在单个事务中访问多个存储库。我是否也应该将@E

java - 如何在纯 JPA 中为 native 查询配置默认数据库架构?

我们的情况如下:我们使用(必须是纯的)JPA在我们的企业应用程序中实现持久化。由于性能原因,我们在这里和那里使用了许多相当复杂的native查询。当访问数据库(Oracle11g)时,我们使用数据库用户APP_ACCESS,它不同于表的“所有者”(APP_OWNER)。这是数据库管理的硬性要求。目前模式名称(APP_OWNER)被硬编码到native查询中,a-la:"SELECT*FROM"+DatabaseSchemaConstants.SCHEMA_NAME+".LOCATION"不用说,我们对这种硬编码并不是特别满意,因为更改“所有者”用户名将意味着更改代码-这绝对不利于维护。

java - REST Controller 中具有一对多关系的实体的递归 JSON View

我正在使用SpringBoot和JPA构建REST接口(interface)。现在,我为从数据库中获取的产品列表返回了一个奇怪的JSON。假设我有:@EntitypublicclassProduct{@Id@GeneratedValue(strategy=GenerationType.AUTO)privateLongid;@ManyToOne(optional=false,fetch=FetchType.LAZY)@JoinColumn(name="categoryId",nullable=false,updatable=false)privateCategorycategory;..

java - 何时使用@Embedded 和@Embeddable?

是否可以将类注释为@Embeddable或将属性注释为@Embedded?示例代码:@EmbeddableclassA{...}classB{...}@EntityclassFoo{Aa;@EmbeddedBb;}什么时候更喜欢@Embedded和@Embeddable? 最佳答案 据我所知,@Embedded/@Embeddable有两个主要用途:首先,也是最重要的:拆分大型实体类。在数据库世界中,一个大表(一个有很多列的表)就可以了。拆分这样的表甚至可能使事情变得更糟,并且与数据库设计原则相冲突。另一方面,在Java(或一般的面

java - Spring Data JPA 无法找到具有给定名称的属性

我试图在SpringBoot上使用SpringDataJPA,但一直出现错误,我无法弄清楚问题是什么:UnabletolocateAttributewiththethegivenname[firstName]onthisManagedType[com.example.h2demo.domain.Subscriber]FirstName在我的实体类中声明。我之前在不同的项目中使用过DAO的服务类并且工作得很好。我的实体类(getters和setters也在这个类中):@EntitypublicclassSubscriber{@Id@GeneratedValueprivatelongid;