小编Kyl*_*fro的帖子

如何在jpql查询中仅查询超类实体?

我有以下实体:

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="orderType", discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue(value="BASE")
@Table(name = "orders")
public class OrderEntity implements Serializable {
...
Run Code Online (Sandbox Code Playgroud)

@Entity
@DiscriminatorValue(value="RECURRING")
public class RecurringOrderEntity extends OrderEntity{
...
Run Code Online (Sandbox Code Playgroud)

我可以使用以下jpql找到所有子类(RecurringOrderEntity):

Query q = em.createQuery(
                "SELECT o from RecurringOrderEntity o where "
                + "o.cancellationDate is null "
                + "and o.maxOccurrences = o.occurrence");
Run Code Online (Sandbox Code Playgroud)

什么是寻找JPQL语法是实体没有的情况下,RecurringOrderEntity

我使用Eclipselink 2.0.0作为JPA提供程序.

谢谢!

orm jpa eclipselink jpql jpa-2.0

8
推荐指数
1
解决办法
9484
查看次数

当我想将EJB暴露给同一应用服务器上的不同应用程序时,是否需要使用@Remote?

我有一个@Stateless @Local Bean成功部署在耳朵里.当我浏览JNDI树时,我可以看到新的EJB 3.1标准全局JNDI名称.(JAVA的:全球/产品/产品EJB /产品经理)

我想在同一个应用服务器上的不同应用程序中使用此EJB .我是否需要为此EJB添加远程接口?

java ejb java-ee java-ee-6 ejb-3.1

6
推荐指数
1
解决办法
1660
查看次数

JPQL avg聚合函数是否与Integers一起使用?

我有一个名为Surgery的JPA 2实体.它有一个名为transfusionUnits的成员,它是一个Integer.

数据库中有两个条目.执行此JPQL语句:

Select s.transfusionUnits from Surgery s
Run Code Online (Sandbox Code Playgroud)

产生预期的结果:

2
3
Run Code Online (Sandbox Code Playgroud)

以下语句产生5的预期答案:

Select sum(s.transfusionUnits) from Surgery s
Run Code Online (Sandbox Code Playgroud)

我希望以下语句的答案是2.5,但它返回2.0.

Select avg(s.transfusionUnits) from Surgery s
Run Code Online (Sandbox Code Playgroud)

如果我在另一个(Float)成员上执行语句,结果是正确的.有关为什么会发生这种情况的任何想法?我需要在JPQL中进行某种转换吗?这甚至可能吗?当然,我在这里遗漏了一些微不足道的东西.

java orm jpa jpql jpa-2.0

5
推荐指数
1
解决办法
7775
查看次数

标签 统计

java ×2

jpa ×2

jpa-2.0 ×2

jpql ×2

orm ×2

eclipselink ×1

ejb ×1

ejb-3.1 ×1

java-ee ×1

java-ee-6 ×1