草庐IT

jpa-criteria

全部标签

java - 在 JPA 中,是否有一种与数据库无关的方法来检查表是否存在?

我想知道是否有一种与数据库无关的方法来检查JPA中是否存在某个表(特别是eclipse链接)。现在我们使用的方式是使用这样的原生查询:selectcount(*)fromtable_namewhere1=2如果抛出异常,我们就知道该表不存在。而且,据我所知,这适用于大多数SQL数据库。我不知道的是它是一个hacky查询,当表不存在时它会抛出SQL异常。我希望能够执行返回true的查询/false而不是noerror/error.但我知道如何做到这一点的唯一方法是查询数据字典,这不会与数据库无关。在JPA中,是否有一种与数据库无关的方法来检查表是否存在? 最佳

java - 在有状态的 ejb 扩展中通过查找找到的 JPA 实体不受管理

我以为em.find找到的一个entity是em自动管理的,连出一个事务,但是下面的这个class好像相反。是我错了还是那堂课有什么错误?@Stateful@TransactionAttribute(NOT_SUPPORTED)publicclassCustomerGateway{@PersistenceContext(unitName="customersPU",type=EXTENDED)privateEntityManagerem;privateCustomercustomer;publicCustomerfind(Longid){//customerisnotmanaged!t

java - Hibernate Envers 因 @Converter 和 AttributeConverter (JPA 2.1) 而失败

我在Envers和MySql5.6中使用Hibernate4.3.4。如果没有JPA2.1转换器,下面的Party实体将在Configuration.buildSessionFactory()处失败,因为Hibernate不知道如何处理名称类:@Entity@AuditedpublicclassParty{protectedNamename;...}异常(exception)情况是:org.hibernate.MappingException:Couldnotdeterminetypefor:ModuloADM.Party.Name,attable:Party,forcolumns:[

java - 如何将具有 2 个实体名称的相同类迁移到 Spring Data JPA?

我正在将一个应用程序从Hibernate迁移到SpringDataJPA。我已经迁移了一些存储库并且可以正常工作。我现在有一个特殊情况需要转换。我的.hbm.xml中有这个:请注意我只有1个类SoundNotification,但它与2个不同的entity-name(SoundNotificationWithData和SoundNotificationWithoutData)一起使用是否可以将其转换为SpringDataJPA?我是否需要创建2个Java类作为“解决方法”?另一个例子是这个:..........在这里,我们在进行一些汇总计算后将相同的“Java对象”存储在不同的表中。我

java - List 或 Set<String> 的 JPA 映射

作为ORM的新手,我想找到一种方法来为实体中的字符串列表(或一组)定义一个简单的(意味着没有额外的实体)映射。我找到了这个样本:importjava.util.Set;importjavax.persistence.CollectionTable;importjavax.persistence.Column;importjavax.persistence.ElementCollection;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.Id;@E

java - 如何使用 JPA 获取整个实体图

我使用JPA2.0和OpenJPA作为底层实现。我有一个实体映射到自身以表示实体之间的父子层次结构。一个实体可以有多个子实体,但最多只有一个父实体。因此,没有父实体的实体位于层次结构的顶部。我的目标是从数据表中获取所有层次结构。所以我有如下查询:SELECTeFROMMyEntityewheree.parentisnull在MyEntity中,我完成了如下映射:@ManyToOne@JoinColumn(name="PARENT")privateMyEntityparent;@OneToMany(mappedBy="parent",fetch=FetchType.EAGER)priva

java - Spring JPA REST 按嵌套属性排序

我有实体Market和Event。Market实体有一列:@ManyToOne(fetch=FetchType.EAGER)privateEventevent;接下来我有一个存储库:publicinterfaceMarketRepositoryextendsPagingAndSortingRepository{}和投影:@Projection(name="expanded",types={Market.class})publicinterfaceExpandedMarket{publicStringgetName();publicEventgetEvent();}使用REST查询/ap

java.time 和 JPA

java.time包中的LocalDateTime类是valuebasedclasses.如果我有一个实体使用这样的对象作为字段,我会遇到以下“问题”:基于值的类不应被序列化。但是,JPA实体必须实现接口(interface)Serializable。这个悖论的解决方案是什么?有人不应该将LocalDateTime用作JPA实体的字段吗?改用日期?这会令人不满意。这个问题是Sonar规则squid:S3437因此项目中有很多错误,因为我们从Date更改为LocalDateTime...由于使用基于值的类导致不兼容的解决方案:@EntitypublicclassMyEntityimple

java - 使用 JPA 持久化第三方对象

在我当前的项目中,我使用的是没有JPA注释的第3方库。如何使用JPA和外部映射从该库中保留对象? 最佳答案 检查this和this.简而言之:创建META-INF/orm.xml关注(阅读).xsd您不必手动映射每一列-只需要一些细节(即集合和ID)。所有字段都假定为列(如果类已映射)。如果没有集合,像这样的东西就足够了:ExternalentitiesfromlibraryXcom.external.library....注意在指定时您不需要完全限定的名称。如果您想要一个与orm.xml不同的文件名,在你的persistence.

java - 带有实体键和实体值的 JPA 映射

关键实体:@EntitypublicclassKeyEntity{@Id@GeneratedValue(strategy=GenerationType.TABLE)publicLongid;publicStringhandle;publicbooleanequals(Objecto){KeyEntityoke=(KeyEntity)o;returnhandle!=null?handle.equals(oke.handle):oke.handle==null;}publicinthashCode(){returnhandle!=null?handle.hashCode():0;}}值(v