草庐IT

QueryDSL-JPA

全部标签

java - JPA/Metamodel : Strange (inconsistent ? ) Sun Docs 中的示例

在SunOnlineresources,他们提供了关于Criteria/MetamodelAPI用法的子示例,但据我了解Java,它似乎无法工作:CriteriaQuerycq=cb.createQuery(Pet.class);Metamodelm=em.getMetamodel();EntityTypePet_=m.entity(Pet.class);EntityTypeOwner_=m.entity(Owner.class);Rootpet=cq.from(Pet.class);Joinaddress=cq.join(**Pet_.owners**).join(**Owner_.

java - 在 CriteriaQuery 期间初始化 JPA 实体的 transient 属性

我想知道是否可以在条件查询期间初始化实体的transient属性。例子@EntitypublicSampleEntity{@Idprivatelongid;[moreattributes]@TransientprivateStringsomeTransientString;[gettersandsetters]}现在我想编写一个加载所有SampleEntity并自动将someTransientString设置为imamightlyf​​inestring的CriteriaQuery。我有类似以下SQL的想法:SELECTIDASID,[..],'imamightilyfinestrin

java - JPA 更新双向关联

假设我们有以下实体:@EntitypublicclassDepartment{@OneToMany(mappedBy="department")privateListemployees;}@EntitypublicclassEmployee{@ManyToOneprivateDepartmentdepartment}可以理解的是,我们需要维护双方的关系,如下所示:Employeeemp=newEmployee();Departmentdep=newDepartment();emp.setDepartment(dep);dep.getEmployees().add(emp);到目前为止一

java - JPA : Extending the persistence context vs. 分离实体

似乎有两种模式可以使用JPA实现跨越多个http请求的业务事务:entity-manager-per-request与分离的实体扩展持久性上下文这些模式各自的优势是什么?什么时候应该首选哪个?到目前为止,我想出了:扩展的持久性上下文保证对象身份等同于数据库身份,简化了编程模型并可能消除了为实体实现equals的需要分离的实体比扩展的持久性上下文需要更少的内存,因为持久性上下文还必须存储实体的先前状态以进行更改检测不再引用的分离实体有资格进行垃圾收集;必须首先显式分离持久对象但是,由于没有任何JPA实践经验,我确信我错过了一些重要的东西,因此提出了这个问题。以防万一:我们打算使用由Hib

java - 带有 QueryDslPredicateExecutor 和加入集合的 Spring-Data-JPA

假设我有一个这样的数据模型(伪代码):@EntityPerson{@OneToManyListattributes;}@EntityPersonAttribute{@ManyToOneAttributeNameattributeName;StringattributeValue;}@EntityAttributeName{Stringname;}我定义了一个Spring-Data-JPA存储库,例如:publicinterfacePersonRepositoryextendsPagingAndSortingRepository,QueryDslPredicateExecutor{}我在

java - JPA - EclipseLink - 如何更改默认模式

我正在使用weblogic和oracle编写Web应用程序。数据源是通过JNDI配置的,有一个受限的数据库用户,他可以DML到表中,但不能DDL。您可能会猜到,该用户不是这些表的所有者,但他被授予访问权限。假设他是GUEST_USER该应用程序使用JPA+EclipseLink,并且已经定义了许多实体。我不想在每个实体类中写入属性来更改模式。我用这段代码尝试了SessionCustomizer。publicclassMyCustomizerimplementsSessionCustomizer{@Overridepublicvoidcustomize(Sessionsession)th

java - 关于 JPA Cascade 和删除实体的问题

我的数据模型中有两个名为User和UserProfile的实体。以下是它们的映射方式。来自用户实体的代码:@OneToOne(cascade=CascadeType.ALL)@PrimaryKeyJoinColumnpublicUserProfilegetUserProfile(){returnthis.userProfile;}publicvoidsetUserProfile(UserProfileuserProfile){this.userProfile=userProfile;}来自UserProfile实体的代码:@OneToOne(mappedBy="userProfile"

java - JPA/EJB3 关系

我一直在阅读有关JPA和EJB3的文章,并想确认我对它们关系的理解是正确的。这是我想我知道的...JPA是一种已被许多供应商实现的规范,包括:JBoss/hibernateOracle/TopLinkEssentials(现为EclipseLink)Apache/OpenJPAEJB3是在应用服务器中实现的规范,包括:玻璃鱼J老板这个对吗? 最佳答案 JavaEE5中引入的JavaPersistenceAPI是EJB3的一个子集,并取代了EJB2.0CMP的持久性解决方案。JPA1.0已被定义为EJB3.0规范(JSR220)的一部

Java/JPA |查询指定的继承类型

我正在对通用表“Sample”构建查询,并且我有几种类型继承自该表“SampleOne”、“SampleTwo”。我需要这样的查询:selectsfromSamplewheres.type=:type其中类型将是表的鉴别器值。是否有可能以任何方式(并避免创建特定于实体的查询,每个SampleOne、SampleTwo...等)我将非常感谢对此主题的任何输入,亲切的问候, 最佳答案 在JPA2.0中,您可以使用TYPE表达式(尽管目前它不适用于Hibernate中的参数,请参阅HHH-5282):selectsfromSamplesw

java - 在jpa中保存对象之前如何知道id

我有一个新对象。我想在保存之前知道id。可能吗?或者还有另一种方法吗?我使用jpa作为orm,使用oracle作为数据库。@Id@Basic(optional=false)@Column(name="ID",nullable=false)@GeneratedValue(strategy=GenerationType.SEQUENCE,generator="woTypeSeq")privateLongid;我的实体中有一个代码字段。如果用户没有为code字段输入值,我想将代码设置为实体的ID。如果我坚持实体,当然我可以得到id并将代码值设置为id,但这是额外的查询数据库。我想做这样的事情