データベースからいくつかのエンティティを取得しようとすると、奇妙な問題が発生します。エンティティが存在するテーブルには 4 行しかありません。すべての行を選択しようとすると、最初と最後の要素が正しくロードされているリストが表示されますが、2 番目と 3 番目の要素はすべて null です。これが私のデバッグコンソールの出力です:
以下に示すように、エンティティは単純です。
@Entity
@Table(name = "Empresa")
public class Empresa implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID_EMPRESA")
private Integer idEmpresa;
@Basic(optional = false)
@Column(name = "NOME_EMPRESA")
@OrderColumn
private String nomeEmpresa;
@Column(name = "CNPJ")
private String cnpj;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "iDEmpresa", fetch = FetchType.LAZY)
private List<Cadastro> cadastroList;
}
エンティティを取得する方法を知りたい場合は、次のコードをご覧ください。
@Override
public List<T> recuperarTodos() {
Query query = entityManager.createQuery(criarQueryRecuperarTodos());
limitarQuantidadeDeRegistros(query);
return query.getResultList();
}
private String criarQueryRecuperarTodos() {
StringBuilder builder = new StringBuilder("SELECT e FROM ");
builder.append(classe.getSimpleName());
builder.append(" e");
builder.append(criarParametrosOrdenacao());
return builder.toString();
}