long id
String someField
// No bidirectional linkage to B entity via hibernate
long id
String someBField
@ManyToOne(optional = false, fetch = FetchType.LAZY)
@JoinColumn(name="b_id")
A entityA
@ManyToOne(optional = true, fetch = FetchType.LAZY)
@JoinColumn(name="b_id")
C entityC;
实体C:
long id
String someCField
// No bidirectional linkage to B entity via hibernate
现在,目标是(为了简单起见,有一些排序和过滤,但这不影响我的问题)返回所有B记录,每个记录都带有A和C记录
所以我正在做这样的事情(我习惯于使用spring-data-jpa来(LEFT)JOIN FETCH属性,以避免按需惰性加载,防止向数据库触发无用的查询,我想在QueryDSL中做完全相同的事情)
JPAQuery<DealBo> query = new JPAQuery<>(entityManager);
query.select(qB)
.from(qB)
.innerJoin(qA).on(qA.a_id.eq(qB.id)).fetchJoin()
.innerJoin(qC).on(qC.a_id.eq(qB.id)).fetchJoin()
.fetch()
select b.id, b.someBfield from b
inner join a // join clause is right and omitted for simplicity
inner join b // join clause is right and omitted for simplicity
b.getc()或b.geta(),我正在向数据库触发另一个查询,这是我首先要避免的事情。
我做错了什么?
我认为,连接条件的定义是不恰当的。
希望我已经用UserEntity<-UserRoleEntity->roleentity重新创建了所描述的星座:
@Entity
@Table(name = "t_user")
public class UserEntity {
@Id
@Column(name = "id")
private Integer id;
@Column(name = "name")
// ..
}
@Entity
@Table(name = "t_user_role")
public class UserRoleEntity {
@Id
@Column(name = "id")
private Integer id;
@ManyToOne
@JoinColumn(name = "user_id")
private UserEntity user;
@ManyToOne
@JoinColumn(name = "role_id")
private RoleEntity role;
// ..
}
@Entity
@Table(name = "t_role")
public class RoleEntity {
@Id
@Column(name = "id")
private Integer id;
@Column(name = "name")
private String name;
// ..
}
查询
List<UserRoleEntity> findAll() {
JPAQuery<UserRoleEntity> query = new JPAQuery<>(entityManager);
return query.select(QUserRoleEntity.userRoleEntity)
.from(QUserRoleEntity.userRoleEntity)
.innerJoin(QUserRoleEntity.userRoleEntity.user).fetchJoin()
.innerJoin(QUserRoleEntity.userRoleEntity.role).fetchJoin()
.fetch();
}
select
userroleen0_.id as id1_5_0_,
userentity1_.id as id1_4_1_,
roleentity2_.id as id1_2_2_,
userroleen0_.role_id as role_id2_5_0_,
userroleen0_.user_id as user_id3_5_0_,
userentity1_.name as name2_4_1_,
roleentity2_.name as name2_2_2_
from t_user_role userroleen0_
inner join t_user userentity1_ on userroleen0_.user_id=userentity1_.id
inner join t_role roleentity2_ on userroleen0_.role_id=roleentity2_.id
我有下面的代码行来获取一个html文档使用jSoup 无论我使用什么标题,这都会超时。相同的网址: 当我在Chrome或火狐上打卡时,工作完全正常。我错过了什么?提前感谢所有的帮助。
问题内容: 我有来自远程服务器的一些json,结果返回如下: 我如何获得a1和a2的值? 谢谢 问题答案: 使用如果数据仍然是字符串形式: 演示:http://jsfiddle.net/mattball/WK9gz/ 由于您使用jQuery的,换出了和jQuery将自动地解析JSON你。在回调内部,您将使用普通的JavaScript对象- 无需解析。
主要内容:1. 创建提取,2. 应用提取过滤器,3. 将新数据添加到提取,4. 提取历史在Tableau中,数据提取从数据源创建数据子集。数据提取对于通过应用过滤器来提高性能非常有用。它还有助于使用Tableau的某些功能。可能在数据源中不可用,例如在数据中查找不同的值。但是,数据提取功能最常用于创建Tableau的脱机访问本地驱动器。 1. 创建提取 按照以下菜单提取数据:数据(Data) -> 提取数据(Extract Data)。 它创建了多个选项,例如对要提取的行数应用限制以
我有以下查询和方法 使用< code >域作为 我希望这个查询能够获取
问题内容: 我正在尝试使用fetch发布 JSON对象。 据我了解,我需要将一个字符串化的对象附加到请求的主体,例如: 使用jsfiddle的json回显时,我希望看到返回的对象(),但这不会发生-chrome devtools甚至不将JSON显示为请求的一部分,这意味着它没有被发送。 问题答案: 借助ES2017 支持,这是如何实现JSON负载的方法: 无法使用ES2017?参见@vp_art使
我在使用LEFT JOIN FETCH时遇到了一个问题。请参考我下面的实体和存储库。 考虑一个场景,可选的课程不会在任何时间点从表中删除。但是学生信息可以被删除。数据库中的两个表之间没有主键和外键关系。只是我们有一个共同的栏目“学生ID”。 不带事务的服务方法: 具有事务性的服务方法: 尽管我使用了LEFT JOIN FETCH,但当我调用依赖实体(即oc)时,为什么在学生记录不存在的情况下(即学