Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package gt.entities; import java.util.ArrayList; import java.util.List; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.Table; import org.hibernate.annotations.Cascade; import org.hibernate.annotations.CascadeType; /** * * @author Dario Calderon */ @Entity @Table(name = "STATE") public class State implements java.io.Serializable { private Long idState; private String txtName; private Country country; private List<City> cities = new ArrayList<>(); public State() { } public State(Long idState) { this.idState = idState; } @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "idState", unique = true, nullable = false) public Long getIdState() { return idState; } public void setIdState(Long idState) { this.idState = idState; } @Column(name = "txtName", nullable = false) public String getTxtName() { return txtName; } public void setTxtName(String txtName) { this.txtName = txtName; } @ManyToOne @JoinColumn(name = "idCountry", referencedColumnName = "idCountry", nullable = false) @Cascade(CascadeType.PERSIST) public Country getCountry() { return country; } public void setCountry(Country country) { this.country = country; } @OneToMany(mappedBy = "state") @Cascade(CascadeType.ALL) public List<City> getCities() { return cities; } public void setCities(List<City> cities) { this.cities = cities; } }