package org.dicadeveloper.weplantaforest.trees; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToOne; import javax.persistence.Table; import org.dicadeveloper.weplantaforest.projects.ProjectArticle; import org.dicadeveloper.weplantaforest.treetypes.TreeType; import org.dicadeveloper.weplantaforest.user.User; import org.dicadeveloper.weplantaforest.views.Views; import org.springframework.hateoas.Identifiable; import com.fasterxml.jackson.annotation.JsonView; import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Entity @ToString @EqualsAndHashCode @Getter @Setter @Table(name = "Tree") public class Tree implements Identifiable<Long> { @Id @GeneratedValue @Column(name = "_treeId") @JsonView(Views.PlantedTree.class) private Long id; @Column(name = "_amount") @JsonView(Views.PlantedTree.class) private int amount; @Column(name = "_imagePath") @JsonView(Views.PlantedTree.class) private String imagePath; @Column(name = "_longitude") @JsonView(Views.PlantedTree.class) private float longitude; @Column(name = "_latitude") @JsonView(Views.PlantedTree.class) private float latitude; @Column(name = "_submittedOn") @JsonView(Views.PlantedTree.class) private long submittedOn; @Column(name = "_plantedOn") @JsonView(Views.PlantedTree.class) private long plantedOn; @Column(name ="_desc", columnDefinition = "TEXT") @JsonView(Views.PlantedTree.class) private String description; @ManyToOne(fetch = FetchType.LAZY, targetEntity = User.class) @JoinColumn(name = "_owner__userId") @JsonView(Views.PlantedTree.class) private User owner; @ManyToOne(fetch = FetchType.LAZY, targetEntity = TreeType.class) @JoinColumn(name = "_treeType_treeTypeId") @JsonView(Views.PlantedTree.class) private TreeType treeType; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "_plantArticle__articleId") @JsonView(Views.PlantedTree.class) private ProjectArticle projectArticle; }