我有两个数据库表
代码
CREATE TABLE `tags` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tags` varchar(255) NOT NULL,
`tag_entity` varchar(255) NOT NULL,
`description` varchar(255) NOT NULL,
`status` enum('live','deleted') NOT NULL DEFAULT 'live',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
tags_parent
CREATE TABLE `tags_parent` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`tag_id` int(11) NOT NULL,
`parent_id` int(11) NOT NULL,
`status` enum('live','deleted') NOT NULL DEFAULT 'live',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
在tags_parent中,tag_id和amp; parent_id是标签表的ID。 一个标签可以有多个父/多子。
如何定义JPA实体?
我正在尝试这样的事情,但我无法更好地想象:
@Entity
@Table(name="tags")
public class Tag implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
private int id;
private String description;
@Column(name="main_id")
private int mainId;
private String status;
@Column(name="tag_entity")
private String tagEntity;
@Column(name="tag_quality_score")
private float tagQualityScore;
@OneToMany(cascade=CascadeType.ALL)
@JoinTable(name="tags_parent",
joinColumns={@JoinColumn(name="tag_id", referencedColumnName="id", insertable=false,updatable=false)},
inverseJoinColumns={@JoinColumn(name="tag_id", referencedColumnName="id", insertable=false,updatable=false)})
private List<Tag> tag;
}