Ola pessoal, tenho uma relaçao entre 2 tabelas. Especies e Racas. Sendo que a tabela Racas é de chaves composta, e por este motivo criei uma terceira classe apenas com as chaves. Minha duvida é que preciso trazer o ultimo id de racas aonde o codigo da especie for = PARAMETRO…
Como seria isto?
Eu tentei assim mas nao funciona.Alguem poderia me dar uma luz?
//Encontrar ultimo código da Racas por CódEspecie
public Integer getLastIdByIdEspecies(Integer idEspecies) {
Object id = pesq("Select MAX(ra.idRacas) FROM RacasPK ra WHERE ra.idEspecies = " + idEspecies).getSingleResult();
int idtoReturn = 1;
if (id != null) {
idtoReturn = ((Integer) id) + 1;
} else {
}
return idtoReturn;
}
}
public class Especies implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "idEspecies")
private Integer idEspecies;
@Basic(optional = false)
@Column(name = "Descricao")
private String descricao;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "especies")
private Collection<Racas> racasCollection;
public Especies() {
}
public class Racas implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
protected RacasPK racasPK;
@Basic(optional = false)
@Column(name = "Descricao")
private String descricao;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "racas")
private Collection<Animais> animaisCollection;
@JoinColumn(name = "idEspecies", referencedColumnName = "idEspecies", insertable = false, updatable = false)
@ManyToOne(optional = false)
private Especies especies;
public Racas() {
}
@Embeddable
public class RacasPK implements Serializable {
@Basic(optional = false)
@Column(name = "idRacas")
private int idRacas;
@Basic(optional = false)
@Column(name = "idEspecies")
private int idEspecies;
public RacasPK() {
}
public RacasPK(int idRacas, int idEspecies) {
this.idRacas = idRacas;
this.idEspecies = idEspecies;
}