是否可以在没有映射或joinColumn的情况下将实体列表添加到另一个实体中?
我想要的是类似的东西
EntityA{
@OneToMany
List<EntityX> allEntitiesX
}
此列表的行为应类似于
Query query=session.createQuery("from EntityX");
List allEntitiesX=query.list();
因此,如果我加载EntiyA,我也可以访问所有其他实体EntityX(延迟加载),而无需“离开” EntityA。由于我们的旧程序,我无法添加新表来连接两个实体,因为我必须更新所有现有的客户数据,并教会旧系统以相同方式处理此joinTable。
如果可能的话,能够过滤条件也很好。
我为什么要它: 在我们的系统中,每个“ mainEntity”都可以具有属性(EntityX)。 每个属性实体都有一个值列表,并且这些值通过joinTable映射到“ mainEntity”。 如果我想添加一个方法setProperty(propertyName,value),则遇到无法找到正确的propertyEntity添加我的值的问题。 设置者必须移到我可以执行entityManager查询的地方。
答案 0 :(得分:0)
是的,但是有可能会创建另一个第三张表,但实际上您不需要第三张表,因为EntityX的每一行都将包含一个EntityA列。
您可以执行的最简单的映射如下所示。
sh-4.2$ ls -l /var/lib/jenkins/jobs/Pipeline/workspace/target/test-classes
total 66950
-rwxrwxrwx. 1 default 2002 5778064 May 1 2014 chromedriver
-rw-r--r--. 1 default 2002 6465536 Nov 20 08:27 chromedriver.exe
-rw-r--r--. 1 default 2002 19912 Nov 20 08:27 ExcelData.xlsx
-rw-r--r--. 1 default 2002 9559 Nov 20 08:27 ExportExcel_old.xlsx
-rw-r--r--. 1 default 2002 9324 Nov 20 08:27 ExportExcel.xlsx
-rw-r--r--. 1 default 2002 56131454 Nov 16 05:41 google-chrome-stable_current_x86_64.rpm
-rw-r--r--. 1 default 2002 26055 Nov 20 08:27 InfraSetup_Sanity_Suite.class
drwxr-sr-x. 2 default 2002 4096 Nov 20 08:27 Libraries
-rw-r--r--. 1 default 2002 13214 Nov 20 08:27 NamingConvention.xlsx
drwxr-sr-x. 2 default 2002 4096 Nov 20 08:27 Navigations
-rw-r--r--. 1 default 2002 12415 Nov 20 08:27 OpenShift_Services_QA.class
drwxr-sr-x. 16 default 2002 4096 Nov 20 08:27 Pages
-rw-r--r--. 1 default 2002 9943 Nov 20 08:27 RouteTables_Routes.xlsx
-rw-r--r--. 1 default 2002 11220 Nov 20 08:27 RouteTables_SubnetAssociations.xlsx
-rw-r--r--. 1 default 2002 4837 Nov 20 08:27 SecurityCheckList.class
-rw-r--r--. 1 default 2002 15858 Nov 20 08:27 SecurityGroup_IB.xlsx
-rw-r--r--. 1 default 2002 16265 Nov 20 08:27 SecurityGroup_OB.xlsx
-rw-r--r--. 1 default 2002 13445 Nov 20 08:27 Security_Groups.xlsx
drwxr-sr-x. 2 default 2002 4096 Nov 20 08:27 Test
-rw-r--r--. 1 default 2002 274 Nov 20 08:27 testng.xml
在另一个实体中
EntityA{
@OneToMany(mappedBy="entityA",cascade = CascadeType.ALL,fetch = FetchType.LAZY)
List<EntityX> allEntitiesX
}