gpt4 book ai didi

java - Hibernate 一个类到多个表

转载 作者:搜寻专家 更新时间:2023-11-01 03:35:11 26 4
gpt4 key购买 nike

我想知道是否有可能将多个表提取到一个 java 类中 例如:

TABLE LABELS;
TABLE STANDARDS;
TABLE REFERENCES;

映射到同一个类

public Class Information {

private String type; // the type is the element who have to do the mapping => LABELS/STANDARDS/REFERENCES
...
}

由于技术原因,我不可能为每种类型构建一个类(我知道一些遗产应该很酷)。

谢谢

吉尔斯

编辑:

我会尝试解释更多 :)

我正在使用 JMS 服务来获取信息。每条消息都有特定的类型(在我的示例中:“标签”、“标准”和“引用”)。

通过使用这些类型,我想将信息保留在各自的表格中。每条消息的结构都完全相同,这就是为什么我想使用唯一的 POJO。

我希望能更好地解释:)

编辑 2:

TABLE LABELS (
ID PRIMARY KEY AUTO_INCREMENT,
MESSAGE VARCHAR(255),
AUTHOR VARCHAR(255)
);
TABLE STANDARDS(
ID PRIMARY KEY AUTO_INCREMENT,
MESSAGE VARCHAR(255),
AUTHOR VARCHAR(255)
);
TABLE REFERENCES (
ID PRIMARY KEY AUTO_INCREMENT,
MESSAGE VARCHAR(255),
AUTHOR VARCHAR(255)
);

这里是 JMS 的一些例子

headers : 
type : label
body:
{message:"name of the country",author:"john doe"}

headers :
type : label
body:
{message:"nom du pays",author:"jenny doe"}

headers :
type : reference
body:
{message:"country",author:"john doe"}

我想将它们放入信息类并将它们保存到正确的表中

最佳答案

试试这个:

 @MappedSuperclass
public class Base {
private String message;
private String autor;
@Column(name = "MESSAGE")
public String getMessage(){
return message;
}
public void setMessage(final String message) {
this.message = message;
}
@Column(name = "AUTOR")
public String getAutor(){
return autor;
}
public void setAutor(final String autor) {
this.autor = autor;
}
}

还有三个类:

 @Entity
@Table(name="LABELS")
public class Labels extends Base{};

 @Entity
@Table(name="STANDARDS")
public class Standards extends Base{};

 @Entity
@Table(name="REFERENCES")
public class References extends Base{};

现在您可以使用以下方式持久化数据:

 Base b;
if (info.getType().equals("REFERENCES")) {
b=new References();
} else if (info.getType().equals("LABELS")) {
b=new Labels();
} else if (info.getType().equals("STANDARDS")) {
b=new Standards();
} else {
return;
}
b.setMessage(info.getMessage());
b.setAutor(info.getAutor());
Transaction t = session.beginTransaction();
session.persist(b);
t.commit();

关于java - Hibernate 一个类到多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34269157/

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