I have trouble on setting orm with many to many relationships:
User
`
component persistent=“true” extends=“solitary.model.BaseEntity” table=“users”{
property name=“userid” column=“user_id” fieldtype=“id” generator=“identity” setter=“false”;
property name=“firstName”;
property name=“lastName”;
property name=“userName”;
property name=“password”;
property name=“confirmPassword” persistent=“false”;
property name=“email”;
property name=“lastLogin” type=“date” ormtype=“timestamp”;
property name=“usernamePasswordHash” column=“uph” type=“string”;
property name=“emailPasswordHash” column=“eph” type=“string”;
property name=“passwordHasReset” type=“boolean”;
property name=“roles” fieldtype=“many-to-many” cfc=“solitary.model.roles.Role” singularname=“role” fkcolumn=“user_id” inversejoincolumn=“role_id” linktable=“users_roles”;
property name=“reports” fieldtype=“many-to-many” cfc=“Report” singularname=“report” fkcolumn=“user_id” inversejoincolumn=“report_id” linktable=“users_report”;
}
`
Report
`
component persistent=“true” table=“report” accessors=“true” {
// Primary Key
property name=“reportid” fieldtype=“id” column=“reportid” generator=“identity”;
// Properties
property name=“name”;
property name=“image”;
property name=“jsonPath”;
property name=“date”;
property name=“users” fieldtype=“many-to-many” cfc=“User” singularname=“user” fkcolumn=“report_id” inversejoincolumn=“user_id” linktable=“users_report”;
// Validation
this.constraints = {
// Example: age = { required=true, min=“18”, type=“numeric” }
};
// Constructor
function init(){
return this;
}
}
`
I would like to setting cascade to remove from table users_report the record that store the relationship between users and report when I delete a report.
If I try this:
var reportBean = reportService.get(arguments.recordId);
reportService.delete(reportBean,true);
I got this strange error:
Application Execution ExceptionError Type: org.hibernate.TransactionException : 0
**Error Messages:**JDBC commit failed
Could you help me to set the cascade relationship?
Thanks