草庐IT

java - 删除元素时使用 JoinTable 和 OrderColumn 的 Hibernate 单向 OneToMany 映射中的约束违规

从如上所述映射的列表中删除元素时遇到问题。这是映射:@Entity@Table(name="foo")classFoo{privateListbars;@OneToMany@OrderColumn(name="order_index")@JoinTable(name="foo_bar_map",joinColumns=@JoinColumn(name="foo_id"),inverseJoinColumns=@JoinColumn(name="bar_id"))@Fetch(FetchMode.SUBSELECT)publicListgetBars(){returnbars;}}插入B

java - JPA 中更好的异常处理

我在持久化我的实体时使用了EJB3/JPA,我很高兴它能够管理我的数据库相关任务。我唯一关心的是异常处理。我保存实体时的示例代码总是采用这种风格。我在网上阅读的大多数教程都是这种风格,也没有考虑异常处理。@StatelesspublicclassStudentFacade{@PersistenceContext(unitName="MyDBPU")privateEntityManagerem;publicvoidsave(Studentstudent){em.persist(student);}}但我不知道EJB应用程序中异常处理的最佳方式是什么?处理异常的最佳方式应该是什么?这是其他

java - 用于国际化的 JPA 数据库结构

我正在尝试通过JPA实现一种简单的国际化方法。我想要一个翻译后的字符串表,我可以在多个表的多个字段中引用它。因此,所有表中出现的所有文本都将替换为对已翻译字符串表的引用。结合语言id,这将在翻译字符串表中为该特定字段提供一个唯一的行。例如,考虑一个具有实体Course和Module的模式,如下所示:-类(class)intcourse_id,整数名称,内部描述模块intmodule_id,内部名称course.name、course.description和module.name都引用了翻译字符串表的id字段:-TranslatedString内部编号,字符串朗,字符串内容这一切看起来

java - JPA 与 DTO 和乐观锁定合并到 RESTful Web 应用程序中?

我的问题是:JPAmerge在无状态Web应用程序中有作用吗?SO上关于JPA中的merge操作的讨论很多。还有一个greatarticleonthesubject这与JPA通过更手动的Do-It-Yourself过程合并形成对比(您通过实体管理器找到实体并进行更改)。我的应用程序有一个丰富的域模型(ala域驱动设计),它使用@Version注释以使用乐观锁定。我们还创建了DTO,作为我们RESTfulWeb服务的一部分通过网络发送。这个DTO层的创建还允许我们向客户端发送它需要的一切,而不是它不需要的。到目前为止,我理解这是一个相当典型的架构。我的问题是关于需要更新(即HTTPPUT

java - 我们如何使用 Hibernate 和 JPA 调用存储过程?

我们如何使用Hibernate或JPA调用存储过程? 最佳答案 考虑以下仅返回基本返回值的存储过程:CREATEORREPLACEPROCEDUREcount_comments(postIdINNUMBER,commentCountOUTNUMBER)ASBEGINSELECTCOUNT(*)INTOcommentCountFROMpost_commentWHEREpost_id=postId;END;您可以使用标准JPA调用它:StoredProcedureQueryquery=entityManager.createStored

java - 有没有办法获取带有结果集的 JPA 命名查询的计数大小?

我喜欢JPA中用于静态查询的命名查询的想法,但我经常希望获得查询的计数结果以及来自查询的某个子集的结果列表。我宁愿不写两个几乎相同的NamedQueries。理想情况下,我想要的是:@NamedQuery(name="getAccounts",query="SELECTaFROMAccount")..Queryq=em.createNamedQuery("getAccounts");Listr=q.setFirstResult(s).setMaxResults(m).getResultList();intcount=q.getCount();假设m为10,s为0,Account中有40

java - JPA GROUP BY entity - 这可能吗?

是否可以在JPA中选择按引用实体分组的数据?我的意思是:我有两个实体-保险和引用的多对一车辆。保险实体有validTill字段(当然还有vehicle字段)。我想选择车辆和最新的保险。下面的查询不起作用:SELECTDISTINCTv.vehicle,max(v.validTill)aslastValidTillFROMTraInsurancevGROUPBYv.vehicleORDERBYlastValidTill上面的查询失败并出现错误:ERROR:column"travehicle1_.id_brand"mustappearintheGROUPBYclauseorbeusedin

java - 如何级联删除属于 JPA 实体的集合?

@EntitypublicclassReportextendsModel{publicDatedate;publicdoubleavailability;@ElementCollection@Cascade(value={CascadeType.ALL})publicMapcategories;}在我的一份工作中,我有以下代码:intn=MonthlyReport.delete("date=?",date);删除实体总是失败,错误如下:TheDELETEstatementconflictedwiththeREFERENCEconstraint"FK966F0D9A66DB1E54".T

java - JPA @ElementCollection List 指定连接列名

我有以下实体:@EntitypublicclassShirtimplementsSerializable{@Id@Size(max=9)privateStringid;@ElementCollection@CollectionTable(name="SHIRT_COLORS")@Column(name="color")privateListcolors=newArrayList();...我设置hibernate为autocreate时创建的collections表是SHIRT_COLORSshirt_idcolor我如何注释我的实体,以便连接列不是实体和pk的串联,以便创建的表是:S

java - 多对多查询jpql

我有以下问题。有一个实体Distributor以ManyToMany关系连接到实体镇:@EntitypublicclassDistributor{@ManyToMany@JoinTable(name="GS_DISTRIBUTOR_TOWN",joinColumns=@JoinColumn(name="CD_DISTRIBUTOR"),inverseJoinColumns=@JoinColumn(name="CD_TOWN"))privateListtowns;....}那么实体镇也和District有关系@EntitypublicclassTown{@ManyToMany(mappe