将休眠映射注释翻译成 hbm.xml 文件
Translate hibernate mapping anotations to hbm.xml file
我有这样的休眠映射注释,我需要将它翻译成xml一个。
@Entity
@Table(name = "nodes")
public class DefaultDiagramNode {
.....
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "node_id", referencedColumnName = "id")
private Set<NodeProperty> properties;
}
这是我的 sql table 结构:
CREATE TABLE nodes (
id VARCHAR(255) NOT NULL,
logical_id VARCHAR(255) NOT NULL,
graphical_id VARCHAR(50) NOT NULL,
type VARCHAR(50) NOT NULL,
diagram_id BIGINT,
PRIMARY KEY (id),
FOREIGN KEY (diagram_id) REFERENCES diagrams (diagram_id)
);
CREATE TABLE node_properties (
property_id VARCHAR(255) NOT NULL,
name VARCHAR(50) NOT NULL,
value VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL,
node_id VARCHAR(255),
PRIMARY KEY (property_id),
FOREIGN KEY (node_id) REFERENCES nodes (id)
);
我该怎么做?
注释确实是新应用程序的更好选择。它们更易于阅读,消除了 POJO 和 XML 之间的钝化关系,并且它们更少将导致以后要维护的代码行更少。注释还可以使使用 Eclipse 或 IntelliJ 等 IDE 重构应用程序变得更加容易。
是否迫切需要回到XML?否则,我会避免它。
编辑:
啊,有道理,因为您使用的是 Thrift。您是否尝试过查看 Swift?您可以将这些注释添加到您的 Hibernate 实体 类。 https://github.com/facebook/swift/
我有这样的休眠映射注释,我需要将它翻译成xml一个。
@Entity
@Table(name = "nodes")
public class DefaultDiagramNode {
.....
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, orphanRemoval = true)
@JoinColumn(name = "node_id", referencedColumnName = "id")
private Set<NodeProperty> properties;
}
这是我的 sql table 结构:
CREATE TABLE nodes (
id VARCHAR(255) NOT NULL,
logical_id VARCHAR(255) NOT NULL,
graphical_id VARCHAR(50) NOT NULL,
type VARCHAR(50) NOT NULL,
diagram_id BIGINT,
PRIMARY KEY (id),
FOREIGN KEY (diagram_id) REFERENCES diagrams (diagram_id)
);
CREATE TABLE node_properties (
property_id VARCHAR(255) NOT NULL,
name VARCHAR(50) NOT NULL,
value VARCHAR(255) NOT NULL,
type VARCHAR(50) NOT NULL,
node_id VARCHAR(255),
PRIMARY KEY (property_id),
FOREIGN KEY (node_id) REFERENCES nodes (id)
);
我该怎么做?
注释确实是新应用程序的更好选择。它们更易于阅读,消除了 POJO 和 XML 之间的钝化关系,并且它们更少将导致以后要维护的代码行更少。注释还可以使使用 Eclipse 或 IntelliJ 等 IDE 重构应用程序变得更加容易。
是否迫切需要回到XML?否则,我会避免它。
编辑:
啊,有道理,因为您使用的是 Thrift。您是否尝试过查看 Swift?您可以将这些注释添加到您的 Hibernate 实体 类。 https://github.com/facebook/swift/