我需要有一个带有System_id,名称,描述等的Registered_Systems表。现在,每个系统可以有n个属性,我计划将这些属性存储在具有外键的子表Registered_System_Attributes(System_id,Attribute_name,Attribute_Value)中到Registered_Systems.System_id
由于属性必须与系统相关联,因此我计划将类RegisteredSystemAttribute设为Embeddable并定义
@Entity
@Table(name = "Registered_Systems")
public class RegisteredSystem {
...
@ElementCollection
@CollectionTable(name = "Registered_System_Attributes", joinColumns = { @JoinColumn(name = "System_id", referencedColumnName = "System_id") })
private Set<RegisteredSystemAttribute> registeredSystemAttributes;
...
}
如果以这种方式建模,如何根据属性名称和&amp ;;返回系统名称。提供的价值?
对此的任何帮助都非常受欢迎。
我正在使用
答案 0 :(得分:1)
我认为您正在寻找的是JPA 2.1地图集(JSR 388,第2.7节)。所以在你的情况下:
@ElementCollection
@CollectionTable(name="Registered_System_Attributes")
@MapKeyColumn(name="Attribute_name")
@Column(name="Attribute_Value")
private Map<String, String> registeredSystemAttributes;