Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多对多关系是否可以建模为一个映射,其中键是来自其他实体的值?_Java_Jpa - Fatal编程技术网

Java 多对多关系是否可以建模为一个映射,其中键是来自其他实体的值?

Java 多对多关系是否可以建模为一个映射,其中键是来自其他实体的值?,java,jpa,Java,Jpa,我有以下数据库模式 CREATE TABLE asset ( id INT, ... ) CREATE TABLE property ( id INT, name NVARCHAR(128) ) CREATE TABLE asset_property ( assetId INT, propertyId INT, value NVARCHAR(MAX) ) 为了可读性,我希望将其建模为以下实体 @Entity public class

我有以下数据库模式

CREATE TABLE asset (
    id INT,
    ...
)

CREATE TABLE property (
    id INT,
    name NVARCHAR(128)
)

CREATE TABLE asset_property (
    assetId INT,
    propertyId INT,
    value NVARCHAR(MAX)
)
为了可读性,我希望将其建模为以下实体

@Entity
public class Asset implements Serializable {
    ...
    Map<String, Asset_property> properties;
    ...
}
@实体
公共类资产实现可序列化{
...
地图属性;
...
}

由于asset_property实体将保留有关关系的一些附加信息,因此我需要在此处提供这些信息。财产实体并不那么重要。我只关心它的“名字”。我希望映射的键取自“属性”表的“名称”列。我读过Oracle文档中关于在实体中使用映射的内容,但似乎无法理解这一点。

数据库中数据的表示方式与代码中数据的表示方式并不一致。一个
资产
对象可以有多个
资产属性
对象,然后每个对象链接到单个
属性
对象。我想您可以将其作为
资产
对象上的
资产属性
对象的列表/集合。然后,如果需要链接到该
资产
的属性名称集合,可以使用
映射
,其中
字符串
属性
名称值。此映射可以在查询数据库后实例化,也可以在查询过程中映射。