package org.dicadeveloper.weplantaforest.admin.project; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; import org.dicadeveloper.weplantaforest.admin.tree.Tree; import org.dicadeveloper.weplantaforest.admin.treeType.TreeType; import org.dicadeveloper.weplantaforest.admin.views.Views; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonView; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Entity @ToString @Getter @Setter @EqualsAndHashCode @Table(name = "PlantArticle") public class ProjectArticle { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "_articleId") @JsonView(Views.ProjectArticle.class) private Long articleId; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "_plant__plantId", nullable = false) @JsonIgnore private Project project; @OneToOne(fetch = FetchType.EAGER) @JoinColumn(name = "_treeType_treeTypeId", nullable = false) @JsonView(Views.ProjectArticle.class) private TreeType treeType; @OneToOne(fetch = FetchType.EAGER) @JoinColumn(name = "_price__priceId", nullable = false) @JsonView(Views.ProjectArticle.class) // @Cascade(CascadeType.ALL) private Price price; @Column(name = "_amount") @JsonView(Views.ProjectArticle.class) private Long amount; @OneToMany(mappedBy = "projectArticle") @JsonIgnore private List<Tree> trees; }