我有一个带有一些JPA 2.1实体的企业应用程序。我正在通过WebLogic的注册JNDI数据源访问数据库。 JPA实现是Hibernate 5.2.17。我正在使用Spring Data JPA来简化数据库访问。
有关实体:
public class PermissionEntity implements Serializable {
private static final long serialVersionUID = -3862680194592486778L;
@Id
@GeneratedValue
private Long id;
@Column(unique = true)
private String permission;
@ManyToMany
private List<RoleEntity> roles;
}
当我尝试插入新实体时,我从WebLogic中收到以下异常:weblogic.transaction.internal.AppSetRollbackOnlyException: setRollbackOnly called on transaction
。
其他实体不会发生此错误。从理论上讲,所有配置都不相同。
答案 0 :(得分:1)
这可能是违反约束或其他原因。 为了了解问题,请在受管服务器启动参数上设置以下标志:
-Dweblogic.transaction.allowOverrideSetRollbackReason=true
这样,您应该获得一个错误堆栈,其中包含有关容器事务失败的更多相关信息。