@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "nav")
public class Nav implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id", nullable = false)
private Integer id;
@Column(name = "name")
private String lbmc;//类别名称
@Column(name = "namepy")
private String lbmcPy;//类别名称
@Column(name = "sl")
private int sl;//数量
@Column(name = "flag")
private int flag;//标识判断是否有子list
@Column(name = "order_id")
private int order_id;//级别排序
@Column(name = "level")
private int level;//级别
@ManyToOne(cascade={CascadeType.ALL},fetch=FetchType.LAZY) //多对一的关联FetchType.LAZY(懒加载)a) 只有真正获取数据时才发出SQL语句
/**(定义列名) @JoinColumn与@Column相区别的是:@JoinColumn注释的是保存表与表之间关系的字段,它要标注在实体属性上。而 @Column标注的是表中不包含表关系的字段。*/
@JoinColumn(name="parent_id")//这是自关联的pid列名设置
@JsonIgnore
//多对一,@JoinColumn与@column类似,指定映射的数据库字段
private Nav parent;//父id
@OneToMany(targetEntity = Nav.class,cascade={CascadeType.ALL}, mappedBy="parent",fetch = FetchType.LAZY)//一对多,mappedBy="parent"表示由parent主导(即在parent端有值)
@OrderBy("order_id")
@JsonIgnore
private List<Nav> childrens=new ArrayList<Nav>();
}
因为再把实体转换成json时,是无法把实体和集合也转换为实体 所以可以采用@JsonIgnore这个标签来解决
这个标签的作用是:@JsonIgnore 过滤不需要转成json的属性
使用这个标签需要下载:jackson-databind.jar
jackson-annotations.jar
jackson-core.jar