- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的项目中的命名查询有问题。我有 2 个具有 OneToOne 关系的实体。
@Entity
@Table(name = "SL_BRANCH_PARAMS")
public class BranchParams implements Identifiable {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "SL_BRANCH_PARAM_SEQ_GEN")
@SequenceGenerator(name = "SL_BRANCH_PARAM_SEQ_GEN", sequenceName = "SL_BRANCH_PARAM_SEQ")
private Long id;
@JoinColumn(name = "INTEREST_ACCOUNT_ID")
@OneToOne(fetch = FetchType.EAGER)
private AccountDef interestAccount;
}
第二类带有命名查询
@Entity
@Table(name = "SL_ACCOUNT_DEF")
@NamedQueries({
@NamedQuery(name = "AccountDef.getAvaibleInterestAccountsForBranch",
query = "SELECT ad FROM AccountDef ad LEFT JOIN FETCH ad.branchParamsInterest WHERE ad.branchParamsInterest = NULL ORDER BY ad.id ASC"),
})
public class AccountDef implements Identifiable {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO, generator = "SL_ACCOUNT_DEF_SEQ_GEN")
@SequenceGenerator(name = "SL_ACCOUNT_DEF_SEQ_GEN", sequenceName = "SL_ACCOUNT_DEF_SEQ")
private Long id;
@OneToOne(fetch = FetchType.EAGER, mappedBy = "interestAccount")
private BranchParams branchParamsInterest;
}
当我执行命名查询时,我将此查询发送到数据库
select
accountdef0_.ID as ID1_10_0_,
branchpara1_.ID as ID1_13_1_,
branchpara1_.INTEREST_ACCOUNT_ID as INTERES16_13_1_
from
SL_ACCOUNT_DEF accountdef0_
left outer join
SL_BRANCH_PARAMS branchpara1_
on accountdef0_.ID=branchpara1_.INTEREST_ACCOUNT_ID
where
accountdef0_.ID is null //this is incorrect
order by
accountdef0_.ID ASC
这是不正确的,因为它在检查 AccountDef 中的 ID 是否为空而不是 BranchParams 中的 ID 时没有给我任何行。
正确的查询应该是这样的
select
accountdef0_.ID as ID1_10_0_,
branchpara1_.ID as ID1_13_1_,
branchpara1_.INTEREST_ACCOUNT_ID as INTERES16_13_1_
from
SL_ACCOUNT_DEF accountdef0_
left outer join
SL_BRANCH_PARAMS branchpara1_
on accountdef0_.ID=branchpara1_.INTEREST_ACCOUNT_ID
where
branchpara1_.ID is null //this is correct
order by
accountdef0_.ID ASC
这样的查询返回我想要的行。我的问题是,为什么命名查询检查 AccountDef 的 null id 值而不是 BranchParams 的值?
最佳答案
也许是这样的?
@NamedQuery(name = "AccountDef.getAvaibleInterestAccountsForBranch",
query = "SELECT ad FROM AccountDef ad LEFT JOIN FETCH ad.branchParamsInterest bp WHERE bp.interestAccount = NULL ORDER BY ad.id ASC")
关于java - NamedQuery 未将表置于 OnetoOne 关系中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26797060/
是否可以从另一个命名查询中调用命名查询?如果是这样,请在您的答案中举一个简单的例子。 上下文: 我有一个子查询,它将在其他一些查询中重复,并且不想成为维护噩梦。 @NamedQuery(name =
在我看来,定义 static namedQueries = {} 在层次结构的子类中完全屏蔽了父类(super class)的 namedQueries 声明。有没有办法让两者都工作?说使用 supe
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭10 年前。 Improv
假设我有以下 2 个类(class): @Entity class Article { @Id int id; @ManyToMany(mappedBy="articles")
再次,基于 a problem I had the other day 为他人的利益发布并回答问题。希望这可以节省一些人的时间。我有点惊讶这没有内置到 JPA 的 EntityManager 中。 如
我已经从数据库生成了一个实体类,并且在 @NamedQueries 注释中创建了一些可用的“默认”查询。因此,当我必须创建新的 sql 查询时,我只需编写 @NamedQuery 并使用名称和新的 s
我是 JSP/EL/EJB 世界的新手,所以请仔细考虑...呵呵 我的问题是 PREVIOUS Q? 的延续 所以在上面问题的评论/答案中建议使用customerFacade.findByUserNa
我在实体中创建了简单的@NamedQuery: @NamedQueries({ @NamedQuery(name = ProductChangeLog.GetByDate, query
我有这样的查询: SELECT * FROM MyTable mt WHERE mt.firstCondition = :var1 AND mt.secondCondition = :var2 var
我想定义一些命名查询,例如: @Entity @Table(name = "TableA") @NamedQuery(query = "SELECT i FROM TableA i WHERE i.I
我尝试执行此查询,但它仍然选择每个 child ,即使我只想要具有特定名称的 child 。我该如何实现这一目标? @NamedQuery(name="Parent.getChildrenWithNa
大家好,我在执行 NamedQuery 时遇到了一些精确匹配的问题。 我目前正在使用这样的东西: @NamedQuery(name = MyClass.GET_ENTRY_BY_NAME, query
我正在使用常量来组织我的@NamedQueries,但我对参数有疑问,是否也将常量用作参数是一种好习惯? 例如,在整个应用程序中,我的 NamedQueries 按公司 ID 筛选。所以我创建了: p
我有 20 个继承自 AbstractEntity 的类,它们都需要具有相同的 NamedQueries,作为示例,我们举一个简单的例子: @NamedQuery(name = Bootle.FIND
我正在使用 JPQL 和 NamedQuery 在组合问题中查询数据库。 @NamedQuery(name = "Entry.findAllForName", query = "Select p Fr
我是 Hibernate 的新手,我遇到以下情况,我不知道如何处理。 所以我有这两个实体类: KMCountryArea 在我的数据库上映射 KM_COUNTRY_AREA 表: @NamedQuer
我有一个小型 Grails 应用程序。我决定制作一个 Multi-Tenancy 架构。我在 DataSource.groovy 中定义了几个数据源。 问题是我在我的域模型类中定义了几个命名查询。 尝
我正在使用带有 Hibernate 的 Java 1.7。 我有下表: CREATE TABLE public.approvalautoselectionconfig ( id bigint
我在使用 hibernate @NamedQueries 时遇到问题。我有一个表 SCP_PMAT,其中列名为“group”。在映射中没有问题。我用括号解决了这个问题。 public class Sc
晚上好!我正在尝试将查询中的值设置为包装类 TestWrapper TestWrapper 类: package com.bionic.wrappers; public class TestWrapp
我是一名优秀的程序员,十分优秀!