我使用JPA而不是Hibernate 4.1.4.Final实现.我的问题是我无法让EntityManager #remove()工作.所有其他:更新,插入,选择操作正常工作,除了这一个.
我的persistence.xml文件:
MysqLDialect"/>
sql" value="true"/>
我的答案实体:( BaseEntity类只保存主键 – ID)
@Entity
@Table(name = "ANSWER")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Answer extends BaseEntity {
@Column(name = "ANSWER_VALUE")
private String answerValue;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "QUESTION_ID",nullable = false)
private Question question;
//overrided equals,hascode,toString
// all getters and setters
}
致电时:
public void remove(T entity) {
this.entityManager.remove(this.entityManager.merge(entity));
}
还尝试过:
this.entityManager.remove(entity);
和:
T ref = entityManager.getReference(entityClass,primaryKey);
entityManager.remove(ref);
我使用Spring配置来配置实体管理器,如下所示:
Meta-INF/persistence.xmlfactorybean">
在使用@Transactional注释注释的方法中调用remove.所以它不应该是交易问题.
我启用了Hibernate sql日志记录,所有其他日志记录.我没有看到任何删除查询将被执行或任何错误.
我真的没有选择.请指教.
编辑
也许这也会有所帮助:
我从另一个实体获得答案列表.答案定义如下:
@OneToMany(fetch = FetchType.LAZY,cascade = CascadeType.ALL,mappedBy = "evaluationPart")
private List
List
最佳答案