gpt4 book ai didi

java - 如何使用JPA2.0将属性映射为DB中的Class和Id

转载 作者:行者123 更新时间:2023-12-01 14:53:40 25 4
gpt4 key购买 nike

我有一个模型,每个类都扩展实体:

@MappedSuperclass
public abstract class Entity implements Serializable {
private Long id;
.
.
.
}

现在,在我的模型中,每个实体都可以有一个属性:

@javax.persistence.Entity
public class Attribute extends Entity {
private Entity entity;
private String name;
private String value;
.
.
.
}

我的问题是:如何映射类 Attribute 的实体属性?我的想法是将此属性存储为entityClass和entityId,但我仍然不知道如何用JPA实现这一点?

<小时/>

扩展实体的具体类示例:

@javax.persistence.Entity
public class Ball extends Entity {
private Set<Attribute> attributes;

@OneToMany(cascade = CascadeType.ALL, mappedBy = "entity")
public Set<Attribute> getAttributes() {
return attributes;
}

public void setAttributes(Set<Attribute> attributes) {
this.attributes = attributes;
}
}

最佳答案

在 JPA 中没有简单的方法可以做到这一点。您可以将关系映射为 @Transient 并为 id 和类添加两个 @Basic 映射(也许使用属性 get/set 方法)。然后在模型代码中执行查询。

如果您使用 EclipseLink,您也许可以使用 @VariableOneToOne,

看,

http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_variableonetoone.htm#CHDDFDGF

关于java - 如何使用JPA2.0将属性映射为DB中的Class和Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14535795/

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