我有两个实体,A和B,它们通过JPA持久化到关系数据库。
public class A {
@Id
private String id;
private String bId;
}
public class B {
@Id
private String id;
private String field;
}
注意A是如何没有B属性的,而只是它的id。在我的用例中,在持久化A实体时,B实体目前不存在,并在稍后写入数据库。但是,在读取时,如果A对象已经存在于数据库中(否则为null ),那么我非常希望使用其对应的B实体来访问它--使用一个JPA查询。
我怎
让我们想象一下,我有这些实体类(我省略了JPA注释):
class TableA { Long id; List<TableB> tableBs; }
class TableB { Long id; List<TableC> tableCs; }
class TableC { Long id; List<TableD> tableDs; }
class TableD { Long id; int foo; }
这给了我们这个实体“图”/“依赖关系”:
TableA ---OneToMany--> TableB ---OneToMany--> Ta
在我的EclipseLink JPA系统中,我希望使用OneToMany访问自定义查询。不幸的是,数据库没有标准化。
简化后的DB如下所示:
公司
ID Name
-----------
01 CompanyA
02 CompanyB
人物
ID Company_Id Name Occupation
------------------------------
01 01 Alice Management
02 01 Bob Accounting
03 01 Carl Accounting
这种职业是一种天然的钥匙。
非常简单
带有Hibernate的Spring data JPA支持javax.persistence.InheritanceType内部的通知javax.persistence.Inheritance和常量。在此基础上,将实体类之间的继承映射到DB (single table/joined )中。
我找不到任何类似的机制来支持spring data r2dbc的实体继承。我知道JPA和Hibernate的东西与r2dbc无关,但我不认为在spring data r2dbc存储库中支持继承有任何问题,也没有任何反对函数式编程的“反模式”。
有没有办法解决这个问题,或者有什么机制可以让我在spring d
A具有具有时间戳字段并由复杂标识符字段区分的JPA实体。我需要的是更新已经存储的实体中的时间戳,否则使用当前时间戳创建和存储新实体。
事实证明,这项任务并不像第一眼看上去那么简单。问题是,在并发环境中,我得到了令人讨厌的“唯一索引或主键违反”异常。这是我的密码:
// Load existing entity, if any.
Entity e = entityManager.find(Entity.class, id);
if (e == null) {
// Could not find entity with the specified id in the database, so
使用Open JPA2.0,数据库为DB2 9.7。我想创建一个实体,其中包括ID,这是主键和自动生成的身份列,并在创建实体后,我需要显示生成的ID。为此,在持久化实体之后,我调用entity.getId()。在数据库中,我看到下面的查询正在执行
select ID from final table
(INSERT INTO WEB.USER (NAME, LOCATION) VALUES (?, ?))
有没有其他/更好的方法来创建实体并返回生成的ID?我希望避免使用"Select ID from final table",因为这预计会对性能产生影响。
我有一个包含一些字段的实体
@Entity
public MyEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
public UUID uuid;
public String value;
.....
}
现在我想创建一个查询,如果数据库中至少有X个实体具有相同的uuid,则返回1;如果至少有Y个实体具有相同的uuid且具有相同的值,则返回2。我不确定我是否描述得很好。如果我想在java中用一个集合来做这件事,它会像下面这样的
有人知道在google app-engine (GAE)数据存储中使用datanucleus JPA中的*查询有什么限制吗?我的问题是
SELECT * FROM Pen p WHERE p.owner = :owner order by p.price desc
我需要组装一个Pen实体/对象和相关数据的列表以发送给客户端。我不能只做key,因为我需要实际的实体。但是我在这里经常提到关系数据库中*查询的速度很慢。
我已经在owner和price上为表/实体编制了索引
假设我们有两个实体,A和B有很多对一的关系,如下所示:
@Entity
public class A {
@OneToMany(mappedBy="a_id")
private List<B> children;
}
@Entity
public class B {
private String data;
}
现在,我要删除A对象,并对其所有子B进行级联删除。有两种方法可以做到这一点:
将cascade=CascadeType.ALL, orphanRemoval=true添加到OneToMany注释中,让JPA在从数据库中删除A对象之前删除所有子对
如何在spring boot中使用distinct和not null编写jpa查询?下面是示例。
职员实体类sql查询为:
select distinct job from emp where job is not null
如何在jpa中编写上述查询。
我已经在这里尝试了findByJobNotNull(),null工作得很好,但需要distinct如何做到这一点,请建议。
我有一个oracle视图,在其中我查询我的数据库。
create or replace view my_view as
Select cc.CCID ccid
sm.SMCODE smcode,
NVL(sm.smname, cc.ccname) sname
From CC cc
Inner Join SM sm
On cc.id = sm.id;
我使用jpa 2.1和hibernate 4.3.7将我的视图映射到我的实体。我的实体类如下所示:
public class CCRequest implements Serializable {