Quantcast
Channel: Java Programming Forum - Learn Java Programming - Hibernate
Viewing all articles
Browse latest Browse all 76

Many-to-many with extra columns

$
0
0
Hi!
I have mapping like :

Code:

@Entity
@Table(name = "exit_codes")
public class ExitCodesEntity {

    private Integer exitId;
    private String  description;
    private Set<LaunchesHistoryEntity> launchesHistoryEntities = new
            HashSet<LaunchesHistoryEntity>(0);

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "exit_id", unique = true, nullable = false)
    public Integer getExitId() {
        return exitId;
    }

    public void setExitId(Integer exitId) {
        this.exitId = exitId;
    }

    @OneToMany(mappedBy = "exitCodesEntity")
    public Set<LaunchesHistoryEntity> getLaunchesHistoryEntities() {
        return launchesHistoryEntities;
    }

    public void setLaunchesHistoryEntities(Set<LaunchesHistoryEntity> launchesHistoryEntities) {
        this.launchesHistoryEntities = launchesHistoryEntities;
    }

//..... etc

}

and

Code:

@Entity
@Table(name = "launches")
public class LaunchesEntity {
    private int                        launchId;
    private String                      dateStart;
    private String                      dateEnd;
    private String                      status;
    private String                      dateQuery;
    private List<LaunchesHistoryEntity> launchesHistoryEntities;

    @Column(name = "template_id")
    public Integer getTemplateId() {
        return templateId;
    }

    public void setTemplateId(Integer templateId) {
        this.templateId = templateId;
    }

    private Integer templateId;

    @OneToMany(mappedBy = "launchesEntity")
    public List<LaunchesHistoryEntity> getLaunchesHistoryEntities() {
        return launchesHistoryEntities;
    }

    public void setLaunchesHistoryEntities(List<LaunchesHistoryEntity> launchesHistoryEntities) {
        this.launchesHistoryEntities = launchesHistoryEntities;
    }

    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @javax.persistence.Column(name = "launch_id")
    @Id
    public int getLaunchId() {
        return launchId;
    }

    public void setLaunchId(int launchId) {
        this.launchId = launchId;
    }



//..... etc
}

and Join table :

Code:

@Entity
@Table(name = "launch_history")
public class LaunchesHistoryEntity {

    private Integer        Id;
    private ExitCodesEntity exitCodesEntity;
    private LaunchesEntity  launchesEntity;

    @ManyToOne
    @JoinColumn(name = "launch_id")
    public LaunchesEntity getLaunchesEntity() {
        return launchesEntity;
    }

    public void setLaunchesEntity(LaunchesEntity launchesEntity) {
        this.launchesEntity = launchesEntity;
    }

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Integer getId() {
        return Id;
    }

    public void setId(Integer id) {
        Id = id;
    }

    @ManyToOne
    @JoinColumn(name = "exit_code")
    public ExitCodesEntity getExitCodesEntity() {
        return exitCodesEntity;
    }

    public void setExitCodesEntity(ExitCodesEntity exitCodesEntity) {
        this.exitCodesEntity = exitCodesEntity;
    }
}

and , at the end, the database schema :
??????????.png

So my question is : what are advantages and disadvantages between my many-to-many POJO-classes structure and my-kyong structure (with embeddable classes):

Hibernate – Many-to-Many example – join table + extra column (Annotation)
Attached Images

Viewing all articles
Browse latest Browse all 76

Trending Articles