草庐IT

QueryDSL-JPA

全部标签

java - JPA 2.0 : what is javax. 验证。* 包?

什么是javax.validation包装在JavaEE?如何将其与JPA一起使用?我想验证我的JPAEntity与@NotNull注解。我的JPA实现是Hibernate.这是我的实体:publicclassEmployeeimplementsSerializable,EmployeeDetail{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValueprivateintid;privateStringname;privatelongsalary;... 最佳答案

java - 要初始化还是不初始化 JPA 关系映射?

在一对多JPA关联中,将关系初始化为空集合是否被认为是最佳实践?例如。@EntitypublicclassOrder{@IdprivateIntegerid;//shouldthelineitemsbeinitializedwithanemptyarraylistornot?@OneToMany(mappedBy="order")ListlineItems=newArrayList();}在上面的例子中,用一个空的ArrayList默认值定义lineItems是否更好?有什么优点和缺点? 最佳答案 JPA本身并不关心集合是否被初始化

java - 如何在 JPA 中拥有 2 个相同类型的集合?

我在JPA中有2个实体:条目和评论。Entry包含两个Comment对象集合。@EntitypublicclassEntry{...@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)@IndexColumn(base=1,name="dnr")privateListdescriptionComments=newArrayList();@OneToMany(fetch=FetchType.EAGER,cascade=CascadeType.ALL)@IndexColumn(base=1,name="pmnr")private

java - 不可变值对象和 JPA

有没有办法使用JPA映射电子邮件地址等不可变值对象?@Immutable@EmbeddablepublicfinalclassEmailAddress{privatefinalStringvalue;publicEmailAddress(Stringvalue){this.value=value;}publicStringgetValue(){returnvalue;}@Overridepublicbooleanequals(Objecto){if(this==o)returntrue;if(o==null||getClass()!=o.getClass())returnfalse;E

java - 使用 querydsl 如何检查由一对多关系产生的一组对象中的特定对象?

我有一个PersonJPA实体,我的Person有多个地址(从Person到Address的OneToMany关系)。我希望能够查询所有拥有粒子邮政编码的人,但在查看querydsl文档后我不确定如何正确处理集合。我可以访问这些地址,但我不确定如何处理它们:QPersonqPerson=QPerson.person;personDao.findAll(qPerson.addresses._SPECIFICADDRESS_.zip.eq('73130'));如何获得我正在寻找的SPECIFICADDRESS? 最佳答案 试试这个QPe

java - 如何在JPA中查询值为空的列?

我正在使用JPAnamedQuery从数据库中选择数据。@NamedQuery(name="Concept.findByRefTableNull",query="SELECTcFROMConceptcWHEREc.conceptName=:conceptNameandc.refTable=:refTable"),///ListattributeList=em.createNamedQuery("Concept.findByRefTableNull").setParameter("conceptName","student").setParameter("refTable",null).

java - 在 JPA 实体 getter 中初始化字段是好习惯吗?

在POJOJavabean中,这样的代码是有益的,尤其是对于集合:classPOJO{privateCollectioncol;publicCollectiongetCol(){if(col==null)col=newSomeCollection();returncol;}}它使得使用POJO的代码可以调用pojo.getCol().isEmpty()而不需要额外的空检查,从而使代码更清晰。假设POJO类是一个JPA实体,这样做仍然安全吗?通过将集合从null初始化为空集合,持久数据不会更改,但我们仍在修改对象,因此持久性提供程序可能会在刷新持久性上下文时产生一些副作用。我们有什么风险

java - 使用 JPA 和 Hibernate 加载没有 N+1 笛卡尔积的递归对象图

在将项目从Ibatis转换为JPA2.1时,我遇到了一个问题,我必须为一组对象加载完整的对象图,而出于性能原因,没有进行N+1选择或使用笛卡尔积。用户查询将产生一个列表,我需要确保当我返回任务时,它们已经填充了所有属性,包括parent、children、依赖项和属性。先解释一下涉及到的两个实体对象。任务是层次结构的一部分。它可以有父任务,也可以有子任务。任务可以依赖于其他任务,由“依赖项”属性表示。一个任务可以有很多属性,由properties属性表示。已尽可能简化示例对象并删除样板代码。@EntitypublicclassTask{@IdprivateLongid;@ManyToO

java - JPA/Hibernate - 防止在 PreRemove 处理程序中删除?

问题标题基本上说明了一切。在JPA/Hibernate中是否有可能优雅地防止从数据库中删除实体?我想要的是将实体标记为“隐藏”而不是实际删除它。我还希望保留Cascade语义,这样如果我尝试删除拥有其他实体集合的实体,则拥有实体及其集合中的每个实体都会被标记为除了实现防止删除并将实体标记为隐藏的@PreRemove处理程序外,我无需任何额外工作即可隐藏。这可能吗,还是我需要找出其他方法? 最佳答案 IsitpossibleinJPA/Hibernatetogracefullypreventthedeletionofanentityf

java - JPA : Store a list of integers in a single field

是否可以使用标准JPA2将整数列表存储在相应实体表的单个字段中?@Entity@Table(name="tbl_myentities")publicclassMyEntity{@ElementaryCollection@Column(name="vals")//intabletbl_myentitiesprivateListvals; 最佳答案 不可能在单个字段中存储多个值。将它们存储在一个字段中的原因是什么?一种方法是使用字符串类型的字段并将所有整数添加到逗号分隔列表中,然后在getter和setter中加入/分解:private