zdravim,

mam 2 tabulky, t_company a t_company_contact a chcel som ich spojit pomocu Hibernate nasledovne:

tabulka t_company ma primarny kluc id, a tabulka t_company_contact ma svoj primarny kluc id, a cudzi kluc fk_company_id do tabulky t_company

teda je tu vztah jedna Firma moze mat viac kontaktov , teda 1:N.

kedze s Hibernate zacinam, chcem poprosit ci tu vidite nieco co je chybne.

kedy je potrebne pouzit mappedBy, v mojom pripade mappedBy="company".

a kedy pouzit ? do triedy Company.java
@Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)

a do triedy CompanyContact.java:
@Cascade(org.hibernate.annotations.CascadeType.SAVE_UPDATE)

pouzivam metody Session.{save, update, saveOrUpdate}, teda nepouzivam JPA.

subor Company.java:

@Entity @Table(name="company")
@javax.persistence.SequenceGenerator(
   name="seq_company",
   sequenceName="s_company",
   allocationSize=1
)
public class Company extends BaseObject {

   private Long id;

   private String name = null;

   private String address = null;

   public Company() {}

   @OneToMany (fetch = FetchType.LAZY, cascade = CascadeType.ALL)
   @JoinColumn(name = "fk_company_id", nullable = false)
   private List<CompanyContact> companyContacts;

   @Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="seq_company")
   public Long getId() {
       return id;
   }

   public void setId(Long id) {
       this.id = id;
   }

......
}


subor CompanyContact.java:

@Entity @Table(name="shipper_contact")
@javax.persistence.SequenceGenerator(
   name="seq_shipper_contact",
   sequenceName="s_shipper_contact",
   allocationSize=1
)
public class CompanyContact extends BaseObject {

   private Long id;

   private String name = null;

   public CompanyContact() {}

   @ManyToOne (fetch = FetchType.LAZY, cascade = CascadeType.ALL)
   @JoinColumn(name = "fk_company_id", nullable = false)
   private Company company;

   @Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="seq_company_contact")
   public Long getId() {
       return id;
   }

   public void setId(Long id) {
       this.id = id;
   }

   public String getName() {
       return name;
   }

....


}

dakujem

Ivan

Odpovedet emailem