Java JPA-具有嵌入id的映射列表属性
我有以下Java实体类:Java JPA-具有嵌入id的映射列表属性,java,jpa,Java,Jpa,我有以下Java实体类: @MapsSuperClass class Request { @OneToMany List<Parameter> parameters; String service; } @Entity class PersistedRequest extends Request { @Id String id; } @Embeddable class Parameter { String key;
@MapsSuperClass
class Request {
@OneToMany
List<Parameter> parameters;
String service;
}
@Entity
class PersistedRequest extends Request {
@Id
String id;
}
@Embeddable
class Parameter {
String key;
String value;
}
参数实体在java实体上没有唯一的ID值,但组合请求ID+键是唯一的。因此,我创建了两个实体来存储参数EmbeddedID类:
@Embeddable
class ParameterPK {
String requestId;
String key;
}
@Entity
class ParameterEntity {
@EmbeddedId
ParameterPK id;
@Embedded
Parameter parameter;
}
我的主要问题是:
- (如何)以某种方式将请求类上的列表映射到上面的数据库模式(其中参数嵌入到ParameterEntity中)?我不想更改java实体(例如,将ParameterEntity放在请求中而不是参数中)
- 如何为ParameterEntity、ParameterPK和Parameter创建注释,其中键列在ParameterPK和Parameter之间共享
@Embeddable
class ParameterPK {
String requestId;
String key;
}
@Entity
class ParameterEntity {
@EmbeddedId
ParameterPK id;
@Embedded
Parameter parameter;
}