草庐IT

QueryDSL-JPA

全部标签

如何在JPA中的多个表上建模及传递连接

在我们的EE6/JPA项目中,我们正在使用具有映射关系的实体类。当在“相邻”表中建模字段时,即使使用复合密钥,也可以很好地建模字段。我们还使用联合表有一些多一对一的关系,这些关系表在实体中整齐地映射。但是我无法在以下情况下缠住我的头:假设我有不同类别的书籍,以及可以附上书籍的作者。现在想象一下,我想在某些类别中“增强”某些作者。现在,给出了一本书,我可以强调某些作者。在SQL(或我猜JPQL)查询中,使用联接来获取作者及其提升因素的列表是非常微不足道的。(甚至仅适用于给定书籍的给定作者,请展示该因素。)但是在JPA中?我不知道。我尝试了这样的事情BookAuthor.java...@OneTo

mysql - JPA中如何使用mysql的FIELD()函数

我的sql查询是这样的Select*fromtableAorderbyFIELD('ID',3,5,2)如何使用criteriabuilder在JPA中实现它?编辑ListordList=newArrayList();ordList.add(3);ordList.add(5);ordList.add(2);public ListgetOrderBys(CriteriaBuilder cb,Root root){ List orders = new ArrayList();        orders.add(cb.function("FIELD",Integer.class,root.

java - 在 hibernate jpa OneToOne 关系中的 db 表上添加了额外的列

我在OneToOne关系上有三个实体类Product->SkuImpl->SkuAvailabilityImpl我只需要添加一个产品,所以记录是插入sku表同时插入SkuAvailability表SkuImpl.java@EntitypublicclassSkuImplimplementsSku{@OneToOne(targetEntity=SkuAvailabilityImpl.class,cascade={cascadeType.ALL},fetch=FetchType.EAGER)@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)@

java - 使用jpa从同一个选择同一个表mariadb的表中删除

我需要在同一个表的操作上从表中删除。JPA查询是DELETEFROMcom.model.ElectricityLedgerEntityaWherea.elLedgeridIN(SELECTP.elLedgeridFROM(SELECTMAX(b.elLedgerid)FROMcom.model.ElectricityLedgerEntitybWHEREb.accountId='24'andb.ledgerType='ElectricityLedger'andb.postType='ARREARS')P);我遇到了这个错误:withrootcauseorg.hibernate.hql.a

java - 如何使用 JPA 保留枚举?

我正在使用MySQL和JPA。我有一个枚举,它有自己的表。我在使用此枚举的实体(entity1)中有一个字段。此字段注释为:@Enumeration(EnumType.STRING)。1-当entity1有自己的表时,将此字段作为数据库中的一列保留在entity1中是否正确?2-如果我在我的其他字段上使用@JsonProperty并且对1的回答是"is",我是否也必须在枚举字段上使用@JsonProperty?3-将枚举放在单独的表中有什么意义?目前,只有@Enumeration注释和一个用于entity1枚举的列,我得到错误:wasannotatedasenumerated,buti

Java JPA 负载平衡读取查询以读取 MySql DB 从站

我注意到我的PlayFramework应用程序没有将读取查询发送到只读的MySql从服务器。我正在使用com.mysql.cj.jdbc.Driver作为javax.persistence.jdbc.driver。jdbc:mysql:replication://write-db-url,read-db-url/db_name作为javax.persistence.jdbc.url数据库是AWSauroraMySQL兼容,具有multi-az副本。我正在使用hibernate作为ORM。我正在使用playframework。我是否缺少任何配置/代码? 最佳答

mysql - 与 Spring Data JPA 和 Querydsl 的额外交叉连接

我正在使用Querydsl2.9、SpringDataJPA1.3.0和HibernateJPA2API1.0版。我正在尝试在Parent和Child这两个表之间进行简单的连接,连接到parentId列。由于某种原因,由Hibernate执行的查询中总是有一个额外的crossjoin。表格如下所示:CREATETABLEPARENT(PARENTIDINT(11)NOTNULLAUTO_INCREMENTPRIMARYKEY,NAMEVARCHAR(255));CREATETABLECHILD(CHILDIDINT(11)NOTNULLAUTO_INCREMENTPRIMARYKEY,

mysql - Spring Data JPA - 对 crud 存储库的 native 查询与连接一起使用?

我有一个扩展CrudRepository的接口(interface),并实现了一个带有@Query注释且属性nativeQuery设置为true的方法。此方法返回一个实体列表。例子:publicinterfaceMessageTemplateRepositoryextendsCrudRepository{@Query(nativeQuery=true,"selecttemplate.*fromplan_granted_templategrantedjoinlicenselicenseongranted.fk_plan=license.fk_planjoinmessage_templat

mysql - JPA 一对一映射 FetchType.LAZY 不起作用

我有如下两个实体@Entity@Table(name="ticket")publicclassTicket{@OneToOne(fetch=FetchType.LAZY,targetEntity=com.vahana.entity.TicketBookingAdditionalInfo.class,mappedBy="ticket",cascade=CascadeType.MERGE)privateTicketBookingAdditionalInfoticketBookingAdditionalInfo;}@Entity@Table(name="ticket_booking_addi

java - JPA:可自动和手动设置的 Id 列

我正在使用MySQL并具有以下实体:classMyEntity{@Id@GeneratedValue(strategy=IDENTITY)@Column(name="id")privateIntegerid;}但是,我还是希望能够手动设置id!问题是INSERT永远不会插入id列。例如,当这样做:MyEntitye=newMyEntity();e.setId(15);em.persist(e);em.flush();em.refresh(e);将进行以下查询:INSERTINTOmyEntities(col1,col2,col3)VALUES(?,?,?)SELECTid,col1,c