Buongiorno a tutti
devo salvare con hibernate il seguente oggetto
codice:Session session; session = HibernateUtil.getSessionFactory().openSession();l'oggetto articolo che è una relazione molti a molti (un articolo può avere più autori, e un autore può aver scritto più articoli)codice:session.beginTransaction(); Article articolo = new Article("jj", "kk", "kll", new Date(), "kkkk", "klkl", "nmj", "it", new Date()); Set<Author> autori = new HashSet<Author>(); autori.add(new Author("a", "b", "c", "d")); autori.add(new Author("l", "m", "n", "o")); articolo.setAuthors(autori); session.save(articolo); session.flush(); session.getTransaction().commit();
come posso fare? mi da sempre errore quando salvo l'articolo
le due classi sotto sono create in automatico quando configuro hibernate. il database dove vengono salvati i dati è mysql
Grazie a tutti per l'aiuto
le classi create da hibernate direttamente dal database sono le seguenti
codice:@Entity@Table(name="author" ,catalog="pubmedarticleset" ) public class Author implements java.io.Serializable { private Integer id; private String lastName; private String foreName; private String initials; private String affiliationInfo; private Set articles = new HashSet(0); public Author() { } public Author(String lastName, String foreName, String initials, String affiliationInfo) { this.lastName = lastName; this.foreName = foreName; this.initials = initials; this.affiliationInfo = affiliationInfo; } public Author(String lastName, String foreName, String initials, String affiliationInfo, Set articles) { this.lastName = lastName; this.foreName = foreName; this.initials = initials; this.affiliationInfo = affiliationInfo; this.articles = articles; } @Id @GeneratedValue(strategy=IDENTITY) @Column(name="Id", unique=true, nullable=false) public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } @Column(name="LastName", nullable=false, length=50) public String getLastName() { return this.lastName; } public void setLastName(String lastName) { this.lastName = lastName; } @Column(name="ForeName", nullable=false, length=50) public String getForeName() { return this.foreName; } public void setForeName(String foreName) { this.foreName = foreName; } @Column(name="Initials", nullable=false, length=50) public String getInitials() { return this.initials; } public void setInitials(String initials) { this.initials = initials; } @Column(name="AffiliationInfo", nullable=false, length=50) public String getAffiliationInfo() { return this.affiliationInfo; } public void setAffiliationInfo(String affiliationInfo) { this.affiliationInfo = affiliationInfo; } @ManyToMany(fetch=FetchType.LAZY) @JoinTable(name="articleauthor", catalog="pubmedarticleset", joinColumns = { @JoinColumn(name="AuthorId", nullable=false, updatable=false) }, inverseJoinColumns = { @JoinColumn(name="ArticleId", nullable=false, updatable=false) }) public Set getArticles() { return this.articles; } public void setArticles(Set articles) { this.articles = articles; } }
codice:@Entity@Table(name="article" ,catalog="pubmedarticleset" ) public class Article implements java.io.Serializable { private Integer id; private String pubModel; private String issn; private String citedMedium; private Date pubDate; private String title; private String articleTitle; private String abstract_; private String language; private Date articleDate; private Set medlinecitations = new HashSet(0); private Set authors = new HashSet(0); public Article() { } public Article(String pubModel, String issn, String citedMedium, Date pubDate, String title, String articleTitle, String abstract_, String language, Date articleDate) { this.pubModel = pubModel; this.issn = issn; this.citedMedium = citedMedium; this.pubDate = pubDate; this.title = title; this.articleTitle = articleTitle; this.abstract_ = abstract_; this.language = language; this.articleDate = articleDate; } public Article(String pubModel, String issn, String citedMedium, Date pubDate, String title, String articleTitle, String abstract_, String language, Date articleDate, Set medlinecitations, Set authors) { this.pubModel = pubModel; this.issn = issn; this.citedMedium = citedMedium; this.pubDate = pubDate; this.title = title; this.articleTitle = articleTitle; this.abstract_ = abstract_; this.language = language; this.articleDate = articleDate; this.medlinecitations = medlinecitations; this.authors = authors; } @Id @GeneratedValue(strategy=IDENTITY) @Column(name="Id", unique=true, nullable=false) public Integer getId() { return this.id; } public void setId(Integer id) { this.id = id; } @Column(name="PubModel", nullable=false, length=50) public String getPubModel() { return this.pubModel; } public void setPubModel(String pubModel) { this.pubModel = pubModel; } @Column(name="ISSN", nullable=false, length=50) public String getIssn() { return this.issn; } public void setIssn(String issn) { this.issn = issn; } @Column(name="CitedMedium", nullable=false, length=50) public String getCitedMedium() { return this.citedMedium; } public void setCitedMedium(String citedMedium) { this.citedMedium = citedMedium; } @Temporal(TemporalType.DATE) @Column(name="PubDate", nullable=false, length=10) public Date getPubDate() { return this.pubDate; } public void setPubDate(Date pubDate) { this.pubDate = pubDate; } @Column(name="Title", nullable=false, length=50) public String getTitle() { return this.title; } public void setTitle(String title) { this.title = title; } @Column(name="ArticleTitle", nullable=false, length=50) public String getArticleTitle() { return this.articleTitle; } public void setArticleTitle(String articleTitle) { this.articleTitle = articleTitle; } @Column(name="Abstract", nullable=false, length=65535) public String getAbstract_() { return this.abstract_; } public void setAbstract_(String abstract_) { this.abstract_ = abstract_; } @Column(name="Language", nullable=false, length=50) public String getLanguage() { return this.language; } public void setLanguage(String language) { this.language = language; } @Temporal(TemporalType.DATE) @Column(name="ArticleDate", nullable=false, length=10) public Date getArticleDate() { return this.articleDate; } public void setArticleDate(Date articleDate) { this.articleDate = articleDate; } @OneToMany(fetch=FetchType.LAZY, mappedBy="article") public Set getMedlinecitations() { return this.medlinecitations; } public void setMedlinecitations(Set medlinecitations) { this.medlinecitations = medlinecitations; } @ManyToMany(fetch=FetchType.LAZY) @JoinTable(name="articleauthor", catalog="pubmedarticleset", joinColumns = { @JoinColumn(name="ArticleId", nullable=false, updatable=false) }, inverseJoinColumns = { @JoinColumn(name="AuthorId", nullable=false, updatable=false) }) public Set getAuthors() { return this.authors; } public void setAuthors(Set authors) { this.authors = authors; } }

					
					
					
						
  Rispondi quotando
						
