我在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
有没有办法使用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
我正在使用JPAnamedQuery从数据库中选择数据。@NamedQuery(name="Concept.findByRefTableNull",query="SELECTcFROMConceptcWHEREc.conceptName=:conceptNameandc.refTable=:refTable"),///ListattributeList=em.createNamedQuery("Concept.findByRefTableNull").setParameter("conceptName","student").setParameter("refTable",null).
在POJOJavabean中,这样的代码是有益的,尤其是对于集合:classPOJO{privateCollectioncol;publicCollectiongetCol(){if(col==null)col=newSomeCollection();returncol;}}它使得使用POJO的代码可以调用pojo.getCol().isEmpty()而不需要额外的空检查,从而使代码更清晰。假设POJO类是一个JPA实体,这样做仍然安全吗?通过将集合从null初始化为空集合,持久数据不会更改,但我们仍在修改对象,因此持久性提供程序可能会在刷新持久性上下文时产生一些副作用。我们有什么风险
在将项目从Ibatis转换为JPA2.1时,我遇到了一个问题,我必须为一组对象加载完整的对象图,而出于性能原因,没有进行N+1选择或使用笛卡尔积。用户查询将产生一个列表,我需要确保当我返回任务时,它们已经填充了所有属性,包括parent、children、依赖项和属性。先解释一下涉及到的两个实体对象。任务是层次结构的一部分。它可以有父任务,也可以有子任务。任务可以依赖于其他任务,由“依赖项”属性表示。一个任务可以有很多属性,由properties属性表示。已尽可能简化示例对象并删除样板代码。@EntitypublicclassTask{@IdprivateLongid;@ManyToO
问题标题基本上说明了一切。在JPA/Hibernate中是否有可能优雅地防止从数据库中删除实体?我想要的是将实体标记为“隐藏”而不是实际删除它。我还希望保留Cascade语义,这样如果我尝试删除拥有其他实体集合的实体,则拥有实体及其集合中的每个实体都会被标记为除了实现防止删除并将实体标记为隐藏的@PreRemove处理程序外,我无需任何额外工作即可隐藏。这可能吗,还是我需要找出其他方法? 最佳答案 IsitpossibleinJPA/Hibernatetogracefullypreventthedeletionofanentityf
是否可以使用标准JPA2将整数列表存储在相应实体表的单个字段中?@Entity@Table(name="tbl_myentities")publicclassMyEntity{@ElementaryCollection@Column(name="vals")//intabletbl_myentitiesprivateListvals; 最佳答案 不可能在单个字段中存储多个值。将它们存储在一个字段中的原因是什么?一种方法是使用字符串类型的字段并将所有整数添加到逗号分隔列表中,然后在getter和setter中加入/分解:private
我在持久化我的实体时使用了EJB3/JPA,我很高兴它能够管理我的数据库相关任务。我唯一关心的是异常处理。我保存实体时的示例代码总是采用这种风格。我在网上阅读的大多数教程都是这种风格,也没有考虑异常处理。@StatelesspublicclassStudentFacade{@PersistenceContext(unitName="MyDBPU")privateEntityManagerem;publicvoidsave(Studentstudent){em.persist(student);}}但我不知道EJB应用程序中异常处理的最佳方式是什么?处理异常的最佳方式应该是什么?这是其他
我正在尝试通过JPA实现一种简单的国际化方法。我想要一个翻译后的字符串表,我可以在多个表的多个字段中引用它。因此,所有表中出现的所有文本都将替换为对已翻译字符串表的引用。结合语言id,这将在翻译字符串表中为该特定字段提供一个唯一的行。例如,考虑一个具有实体Course和Module的模式,如下所示:-类(class)intcourse_id,整数名称,内部描述模块intmodule_id,内部名称course.name、course.description和module.name都引用了翻译字符串表的id字段:-TranslatedString内部编号,字符串朗,字符串内容这一切看起来
我的问题是:JPAmerge在无状态Web应用程序中有作用吗?SO上关于JPA中的merge操作的讨论很多。还有一个greatarticleonthesubject这与JPA通过更手动的Do-It-Yourself过程合并形成对比(您通过实体管理器找到实体并进行更改)。我的应用程序有一个丰富的域模型(ala域驱动设计),它使用@Version注释以使用乐观锁定。我们还创建了DTO,作为我们RESTfulWeb服务的一部分通过网络发送。这个DTO层的创建还允许我们向客户端发送它需要的一切,而不是它不需要的。到目前为止,我理解这是一个相当典型的架构。我的问题是关于需要更新(即HTTPPUT