【问题标题】:JPA , How can I tell what will be saved back to the databaseJPA,我如何知道将保存回数据库的内容
【发布时间】:2011-05-21 18:48:28
【问题描述】:

我有一个 JPA 实体,它通过 OneToMany 关系具有子集合,并且我设置了 cascade=CascadeType.ALL 但是当我保存父实体时,它不会保存对子集合所做的任何更改(即添加或删除),我不知道为什么会这样。

如果有办法从 JPA EntityManager 等获取有关事务结束时将保存的内容的任何信息,这将很有用。

不知道该怎么做?对此进行调试已成为不可能。

【问题讨论】:

  • 您是否使用“mappedBy”设置了拥有站点?
  • 通常这要么是不正确的映射,要么是您没有正确地将孩子添加到父母的孩子列表中。
  • 在坚持之前检查你的实体的状态是什么,你可能想看看 EntityListeners docs.oracle.com/html/E24396_01/ejb3_overview_pc_callbacks.html

标签: jpa playframework


【解决方案1】:

查看 SQL 级别发生的情况的一种解决方案是在休眠状态下打开调试。如果将 log4j.properties 文件添加到 /conf 目录,则可以手动控制休眠日志输出。这是您可以使用的示例配置文件。取消注释相应区域以提高日志级别:

log4j.logger.org.hibernate=info
### log just the SQL
log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=debug

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=info

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多