定义JPA(Hibernate)实体

定义JPA(Hibernate)实体,hibernate,jpa,Hibernate,Jpa,我有两个数据库表 标签 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

我有两个数据库表

标签

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
标记父项

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和parent_id都是tags表的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;
@实体
@表(name=“tags”)
公共类标记实现可序列化{
私有静态最终长serialVersionUID=1L;
@身份证
@生成值
私有int-id;
私有字符串描述;
@列(name=“main\u id”)
私有int mainId;
私有字符串状态;
@列(name=“标记实体”)
私有字符串标记实体;
@列(name=“标记质量分数”)
私人浮动标记质量分数;
@OneToMany(级联=级联类型.ALL)
@JoinTable(name=“tags\u parent”,
joinColumns={@JoinColumn(name=“tag_id”,referencedColumnName=“id”,insertable=false,updateable=false)},
inverseJoinColumns={@JoinColumn(name=“tag\u id”,referencedColumnName=“id”,insertable=false,updateable=false)})
私有列表标签;

}

你试过什么?它是一个具有自引用关系的实体。我正在尝试JoinTable,joinColumns和inverseJoinColumns都指向标记表?您能分享您的实际代码吗?您说过
可以有多个父/多个子
,那么它应该是
多个
?!好啊但是加入条件呢?