当我查询视图时如何返回实体列表

时间:2015-09-19 22:15:21

标签: java hibernate

我有两个与One to Many连接相关的实体。一个是Path另一个是Point,一个路径可以有几个点。我在MySQL方面看到使用连接表加入这些表。我需要获取查询结果到该视图。这是第一次

@Entity
@Table(name = "paths")
public class Path {

    @JsonIgnore
    @Id
    @Column(name="id")
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long pathID;
    @Column(name="path_name")
    private String pathName;
    @Column(name="path_type")
    private Long pathType;
    @OneToOne(fetch = FetchType.EAGER)
    @JoinColumn(name="uid")
    @JsonIgnore
    private User owner;
    @Column(name="path_status")
    private Long pathStatus;
    @Column(name="description")
    private String pathDescription;
    @Column(name="created")
    private Long created;
    @OneToMany(mappedBy = "primaryKey.point",  cascade = CascadeType.ALL)
    private Set<PathPoints> pathPoints = new HashSet<PathPoints>();

    public Long getPathID(){
        return this.pathID;
    }
    public void setPathID(Long pathID){
        this.pathID = pathID;
    }

    public String getPathName(){
        return this.pathName;
    }
    public void setPathName(String pathName){
        this.pathName = pathName;
    }

    public Long getPathType(){
        return this.pathType;
    }
    public void setPathType(Long pathType){
        this.pathType = pathType;
    }

    public Long getPathStatus(){
        return this.pathStatus;
    }
    public void setPathStatus(Long pathStatus){
        this.pathStatus = pathStatus;
    }

    public String getPathDescription(){
        return this.pathDescription;
    }
    public void setPathDescription(String pathDescription){
        this.pathDescription = pathDescription;
    }

    public Long getCreated(){
        return this.created;
    }
    public void setCreated(Long created){
        this.created = created;
    }
    public Set<PathPoints> getPathPoints() {
        return pathPoints;
    }
    public void setPathPoints(Set<PathPoints> pathPoints) {
        this.pathPoints = pathPoints;
    }
    public User getOwner() {
        return owner;
    }
    public void setOwner(User owner) {
        this.owner = owner;
    }

}

这是第二个

    @Entity
    @Table(name = "path_points")
    @AssociationOverrides({
    @AssociationOverride(name = "primaryKey.point", joinColumns = @JoinColumn(name = "point_id")),
    @AssociationOverride(name = "primaryKey.path", joinColumns = @JoinColumn(name = "path_id"))
    })
public class PathPoints{

    private PathPointID primaryKey = new PathPointID();

    private Long endTime;
    private Long  startTime;

    @Column(name="end_time")
    public Long getEndTime() {
        return endTime;
    }
    public void setEndTime(Long endTime) {
        this.endTime = endTime;
    }
    @Column(name="start_time")
    public Long getStartTime() {
        return startTime;
    }
    public void setStartTime(Long startTime) {
        this.startTime = startTime;
    }
    @JsonIgnore
    @EmbeddedId
    public PathPointID getPrimaryKey() {
        return primaryKey;
    }
    public void setPrimaryKey(PathPointID primaryKey) {
        this.primaryKey = primaryKey;
    }
    @Transient
    public Point getPoint() {
        return primaryKey.getPoint();
    }
    public void setPoint(Point point) {
        this.primaryKey.setPoint(point);;
    }
    @JsonIgnore
    @Transient
    public Path getPath() {
        return primaryKey.getPath();
    }
    public void setPath(Path path) {
        this.primaryKey.setPath(path);;
    }

}

那是ID类

@Embeddable
public class PathPointID implements Serializable {

/**
 * 
 */
private static final long serialVersionUID = 1L;
private Point point;
private Path  path;

@ManyToOne(cascade = CascadeType.ALL)
public Point getPoint() {
    return point;
}
public void setPoint(Point point) {
    this.point = point;
}
@ManyToOne(cascade = CascadeType.ALL)
public Path getPath() {
    return path;
}
public void setPath(Path path) {
    this.path = path;
}
}

0 个答案:

没有答案