Unable to perform database CURD operations using dropwizard, hibernate, JPA

删除回忆录丶 提交于 2019-12-11 00:55:24

问题


Actually i am finding best way to design data model for one of web service. I have three level of relationship. Currently unable to perform database operation with below data model.

Track has one or more Transition Set and Each Transition Set having one or more transition metadata detail.

I made data model as below. I hope i developed data model correctly.

 - Track
  - ID
  - Title
  - Artist
  - [Other detail fields]
 - Transition Set
  - ID
  - Track ID
 - Transition Metadata
  - ID
  - Transition Set ID
  - [Other detail Fields] 

Implemented this but having issues about database operation and getting only first transition only.

@Entity
@Table(name = "tracks")
public class Track
{
    @Id
    @SequenceGenerator(name = "trackSeq", sequenceName = "seq_tracks_id", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "trackSeq")
    private long id;

    // Other fields

    @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, targetEntity = TransitionMetadata.class)
    @JsonProperty
    @JoinTable(name = "transition_set", joinColumns = { @JoinColumn(name = "track_id", referencedColumnName = "id",
    table = "tracks") }, inverseJoinColumns = @JoinColumn(name = "id", referencedColumnName = "transition_set_id",
    table = "transition_metadata"))
    private List<TransitionMetadata> transitions = new ArrayList<>();

}

@Entity
@Table(name = "transition_set")
public class TransitionSet
{
    @Id
    @SequenceGenerator(name = "transitionSetSeq", sequenceName = "seq_transition_set_id", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "transitionSetSeq")
    private long id;

    @ManyToOne(cascade = CascadeType.DETACH, optional = true, fetch = FetchType.LAZY)
    @JoinColumn(name = "track_id", referencedColumnName = "id")
    private Track track;
}

@Entity
@Table(name = "transition_metadata")
public class TransitionMetadata
{

    @Id
    @SequenceGenerator(name = "transitionMetadataSeq", sequenceName = "seq_transition_metadata_id", allocationSize = 1)
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "transitionMetadataSeq")
    private long id;

    @ManyToOne(fetch = FetchType.EAGER, optional = false, cascade = CascadeType.DETACH)
    @JoinColumn(name = "transition_set_id", referencedColumnName = "id")
    private TransitionSet transitionSet;

    // Other fields
}

Looks like i am stuck here, can you please help me to figure out stuff.

来源:https://stackoverflow.com/questions/41853136/unable-to-perform-database-curd-operations-using-dropwizard-hibernate-jpa

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!