我有一个JPA实体,通过OneToMany关系有子集合,我设置了cascade = CascadeType.ALL但是当我保存父实体时,它不保存对子集合所做的任何更改(即添加或删除),I不知道为什么会这样。
知道是否有办法从JPA EntityManager等获取有关在交易结束时将保存的内容的信息将会很有用。
不确定怎么做?调试这个已经不可能了。
答案 0 :(得分:5)
查看SQL级别发生的事情的一个解决方案是打开hibernate上的调试。如果将log4j.properties文件添加到/ conf目录,则可以手动控制hibernate日志输出。这是您可以使用的示例配置文件。取消注释相应区域以提高日志级别:
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