E ai pessoal, criei minhas classes de domínio automaticamente pelo HibernateTools, sem mapear as relações n pra n.
O problema que está ocorrendo é o seguinte: tenho uma relação n pra n entre curso e disciplina , quando tento deletar um curso(este no momento da exclusão não possui nenhuma chave estrangeira cadastrada) é retornado o seguinte erro
javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not initialize a collection: [edu.pos.access.Curso.disciplinaCursos#2] at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637) at org.hibernate.ejb.AbstractEntityManagerImpl.remove(AbstractEntityManagerImpl.java:259) at edu.pos.dao.GenericDAO.excluir(GenericDAO.java:53) at edu.pos.service.CursoServiceImpl.excluir(CursoServiceImpl.java:33) at edu.pos.action.CursoAction.excluir(CursoAction.java:180) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:186) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224) at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223) at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504) at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Unknown Source) Caused by: org.hibernate.exception.SQLGrammarException: could not initialize a collection: [edu.pos.access.Curso.disciplinaCursos#2] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43) at org.hibernate.loader.Loader.loadCollection(Loader.java:2001) at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36) at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:565) at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:63) at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1716) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86) at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:163) at org.hibernate.type.CollectionType.getElementsIterator(CollectionType.java:213) at org.hibernate.type.CollectionType.getElementsIterator(CollectionType.java:202) at org.hibernate.engine.CascadingAction.getAllElementsIterator(CascadingAction.java:415) at org.hibernate.engine.CascadingAction.access$100(CascadingAction.java:27) at org.hibernate.engine.CascadingAction$1.getCascadableChildrenIterator(CascadingAction.java:125) at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:294) at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242) at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219) at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169) at org.hibernate.engine.Cascade.cascade(Cascade.java:130) at org.hibernate.event.def.DefaultDeleteEventListener.cascadeBeforeDelete(DefaultDeleteEventListener.java:307) at org.hibernate.event.def.DefaultDeleteEventListener.deleteEntity(DefaultDeleteEventListener.java:246) at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:141) at org.hibernate.event.def.DefaultDeleteEventListener.onDelete(DefaultDeleteEventListener.java:52) at org.hibernate.impl.SessionImpl.fireDelete(SessionImpl.java:766) at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:744) at org.hibernate.ejb.AbstractEntityManagerImpl.remove(AbstractEntityManagerImpl.java:253) ... 118 more Caused by: org.postgresql.util.PSQLException: ERROR: column disciplina0_.cursopk_fk does not exist at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548) at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316) at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191) at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351) at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:255) at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186) at org.hibernate.loader.Loader.getResultSet(Loader.java:1787) at org.hibernate.loader.Loader.doQuery(Loader.java:674) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) at org.hibernate.loader.Loader.loadCollection(Loader.java:1994) ... 142 more
....
SEVERE: ERROR: column disciplina0_.cursopk_fk does not exist
E esta coluna existe.
Segue abaixo as classes geradas pelo HibernateTools
Curso@Entity
@NamedQueries({
@NamedQuery(name="obterCursoPorNome", query="SELECT c FROM Curso c WHERE c.nome LIKE :nome")
})
@Table(name = "curso", schema = "public")
public class Curso implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private String codigo;
private String nome;
private String descricao;
private int duracao;
private Set<Turma> turmas = new HashSet<Turma>(0);
private Set<DisciplinaCurso> disciplinaCursos = new HashSet<DisciplinaCurso>(
0);
private Set<Aluno> alunos = new HashSet<Aluno>(0);
/** Variável criada por exigência do displaytag - é utilizada para adicionar
* funcionalidades em um objeto particular- deve-se criar tb uma classe wraper*/
private String operacoes;
public Curso() {
}
public Curso(String codigo, String nome, int duracao) {
this.codigo = codigo;
this.nome = nome;
this.duracao = duracao;
}
public Curso(String codigo, String nome, String descricao, int duracao,
Set<Turma> turmas, Set<DisciplinaCurso> disciplinaCursos,
Set<Aluno> alunos) {
this.codigo = codigo;
this.nome = nome;
this.descricao = descricao;
this.duracao = duracao;
this.turmas = turmas;
this.disciplinaCursos = disciplinaCursos;
this.alunos = alunos;
}
@Id
@Column(name = "codigo", unique = true, nullable = false, length = 10)
public String getCodigo() {
return this.codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
@Column(name = "nome", nullable = false, length = 30)
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Column(name = "descricao")
public String getDescricao() {
return this.descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao;
}
@Column(name = "duracao", nullable = false)
public int getDuracao() {
return this.duracao;
}
public void setDuracao(int duracao) {
this.duracao = duracao;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "curso")
public Set<Turma> getTurmas() {
return this.turmas;
}
public void setTurmas(Set<Turma> turmas) {
this.turmas = turmas;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "curso")
public Set<DisciplinaCurso> getDisciplinaCursos() {
return this.disciplinaCursos;
}
public void setDisciplinaCursos(Set<DisciplinaCurso> disciplinaCursos) {
this.disciplinaCursos = disciplinaCursos;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "curso")
public Set<Aluno> getAlunos() {
return this.alunos;
}
public void setAlunos(Set<Aluno> alunos) {
this.alunos = alunos;
}
@Transient
public String getOperacoes() {
return operacoes;
}
public void setOperacoes(String operacoes) {
this.operacoes = operacoes;
}
}
Disciplina
@Entity
@Table(name = "disciplina", schema = "public")
public class Disciplina implements java.io.Serializable {
private String codigo;
private String nome;
private String ementa;
private Set<DisciplinaProfessor> disciplinaProfessors = new HashSet<DisciplinaProfessor>(
0);
private Set<DisciplinaCurso> disciplinaCursos = new HashSet<DisciplinaCurso>(
0);
private Set<DisciplinaTurma> disciplinaTurmas = new HashSet<DisciplinaTurma>(
0);
public Disciplina() {
}
public Disciplina(String codigo, String nome) {
this.codigo = codigo;
this.nome = nome;
}
public Disciplina(String codigo, String nome, String ementa,
Set<DisciplinaProfessor> disciplinaProfessors,
Set<DisciplinaCurso> disciplinaCursos,
Set<DisciplinaTurma> disciplinaTurmas) {
this.codigo = codigo;
this.nome = nome;
this.ementa = ementa;
this.disciplinaProfessors = disciplinaProfessors;
this.disciplinaCursos = disciplinaCursos;
this.disciplinaTurmas = disciplinaTurmas;
}
@Id
@Column(name = "codigo", unique = true, nullable = false, length = 5)
public String getCodigo() {
return this.codigo;
}
public void setCodigo(String codigo) {
this.codigo = codigo;
}
@Column(name = "nome", nullable = false, length = 30)
public String getNome() {
return this.nome;
}
public void setNome(String nome) {
this.nome = nome;
}
@Column(name = "ementa")
public String getEmenta() {
return this.ementa;
}
public void setEmenta(String ementa) {
this.ementa = ementa;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "disciplina")
public Set<DisciplinaProfessor> getDisciplinaProfessors() {
return this.disciplinaProfessors;
}
public void setDisciplinaProfessors(
Set<DisciplinaProfessor> disciplinaProfessors) {
this.disciplinaProfessors = disciplinaProfessors;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "disciplina")
public Set<DisciplinaCurso> getDisciplinaCursos() {
return this.disciplinaCursos;
}
public void setDisciplinaCursos(Set<DisciplinaCurso> disciplinaCursos) {
this.disciplinaCursos = disciplinaCursos;
}
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "disciplina")
public Set<DisciplinaTurma> getDisciplinaTurmas() {
return this.disciplinaTurmas;
}
public void setDisciplinaTurmas(Set<DisciplinaTurma> disciplinaTurmas) {
this.disciplinaTurmas = disciplinaTurmas;
}
}
@Entity
@Table(name = "disciplina_curso", schema = "public")
public class DisciplinaCurso implements java.io.Serializable {
private DisciplinaCursoId id;
private Curso curso;
private Disciplina disciplina;
private int cargaHoraria;
public DisciplinaCurso() {
}
public DisciplinaCurso(DisciplinaCursoId id, Curso curso,
Disciplina disciplina, int cargaHoraria) {
this.id = id;
this.curso = curso;
this.disciplina = disciplina;
this.cargaHoraria = cargaHoraria;
}
@EmbeddedId
@AttributeOverrides( {
@AttributeOverride(name = "disciplinaPkFk", column = @Column(name = "disciplinaPK_FK", nullable = false, length = 5)),
@AttributeOverride(name = "cursoPkFk", column = @Column(name = "cursoPK_FK", nullable = false, length = 10)) })
public DisciplinaCursoId getId() {
return this.id;
}
public void setId(DisciplinaCursoId id) {
this.id = id;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "cursoPK_FK", nullable = false, insertable = false, updatable = false)
public Curso getCurso() {
return this.curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "disciplinaPK_FK", nullable = false, insertable = false, updatable = false)
public Disciplina getDisciplina() {
return this.disciplina;
}
public void setDisciplina(Disciplina disciplina) {
this.disciplina = disciplina;
}
@Column(name = "carga_horaria", nullable = false)
public int getCargaHoraria() {
return this.cargaHoraria;
}
public void setCargaHoraria(int cargaHoraria) {
this.cargaHoraria = cargaHoraria;
}
}
@Embeddable
public class DisciplinaCursoId implements java.io.Serializable {
private String disciplinaPkFk;
private String cursoPkFk;
public DisciplinaCursoId() {
}
public DisciplinaCursoId(String disciplinaPkFk, String cursoPkFk) {
this.disciplinaPkFk = disciplinaPkFk;
this.cursoPkFk = cursoPkFk;
}
@Column(name = "disciplinaPK_FK", nullable = false, length = 5)
public String getDisciplinaPkFk() {
return this.disciplinaPkFk;
}
public void setDisciplinaPkFk(String disciplinaPkFk) {
this.disciplinaPkFk = disciplinaPkFk;
}
@Column(name = "cursoPK_FK", nullable = false, length = 10)
public String getCursoPkFk() {
return this.cursoPkFk;
}
public void setCursoPkFk(String cursoPkFk) {
this.cursoPkFk = cursoPkFk;
}
public boolean equals(Object other) {
if ((this == other))
return true;
if ((other == null))
return false;
if (!(other instanceof DisciplinaCursoId))
return false;
DisciplinaCursoId castOther = (DisciplinaCursoId) other;
return ((this.getDisciplinaPkFk() == castOther.getDisciplinaPkFk()) || (this
.getDisciplinaPkFk() != null
&& castOther.getDisciplinaPkFk() != null && this
.getDisciplinaPkFk().equals(castOther.getDisciplinaPkFk())))
&& ((this.getCursoPkFk() == castOther.getCursoPkFk()) || (this
.getCursoPkFk() != null
&& castOther.getCursoPkFk() != null && this
.getCursoPkFk().equals(castOther.getCursoPkFk())));
}
public int hashCode() {
int result = 17;
result = 37
* result
+ (getDisciplinaPkFk() == null ? 0 : this.getDisciplinaPkFk()
.hashCode());
result = 37 * result
+ (getCursoPkFk() == null ? 0 : this.getCursoPkFk().hashCode());
return result;
}
}
Será que alguém poderia me ajudar por favor?
Obrigado!