gpt4 book ai didi

java - dao、tx、服务结构 : where to place a method querying an abstract entity?

转载 作者:行者123 更新时间:2023-12-01 15:30:13 24 4
gpt4 key购买 nike

我有一个抽象实体,其他 4 个实体继承自该抽象实体。这种关系运行良好,但是我想查询抽象实体,以便获取所有实体,无论其类型如何。我不知道在哪里放置这样的方法,因为父实体 dao 也是抽象的。

EntityParent(抽象)-> EntityType1、EntityType2、EntityType3、EntityType4

DAO 看起来像这样:

EntityParentDAO(抽象)-> EntityType1DAO、EntityType2DAO、EntityType3DAO、EntityType4DAO

TX 也看起来像这样:EntityParentTx(抽象)-> EntityType1Tx、EntityType2Tx、EntityType3Tx、EntityType4Tx

我的项目结构如下:实体 -> 每个实体的 DAO -> 每个 DAO 的 TX -> 组合多个 TX 的服务

有一个服务,它使用我的项目范围内的所有*TX*。这是应该放置条件/HQL 查询的地方吗?这听起来不太正确。

例如,假设我有一个 Car 父实体,并且有一个子实体 CoupeSedanMinivan code> 等等,我想要一个汽车列表,该列表具有所有人共有的属性,因此在实体(及其表)Car 中。考虑到我所遵循的结构,我应该在哪里放置此查询/方法?

最佳答案

我不确定我是否遵循事务继承,但为什么不将父 dao 具体化并将其添加到那里呢?只要父级是一个实体,并且它具有该字段,您就可以对其进行查询。返回类型将是基本类型的列表,但它将是实际类型的实例。

例如:

@Entity
@Table(name = "table")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.INTEGER)
public abstract class ParentImpl implements Parent{}

@Entity
@DiscriminatorValue("1")
public class Entity1Impl extends ParentImpl {}

public interface AbstractDao<T extends Parent> {}

public interface ConcreteParentDao<Parent> {}

关于java - dao、tx、服务结构 : where to place a method querying an abstract entity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9620768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com