I have 4 entitys like this.
Code:package com.yotexs.core.model.security; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.springframework.roo.addon.entity.RooEntity; import org.springframework.roo.addon.javabean.RooJavaBean; import org.springframework.roo.addon.tostring.RooToString; import java.util.Set; import com.yotexs.core.model.security.AclIdentity; import java.util.HashSet; import javax.persistence.OneToMany; import javax.persistence.CascadeType; import com.yotexs.core.model.security.AclEntry; @Entity @RooJavaBean @RooToString @RooEntity @Table(name = "sec_sid", uniqueConstraints = { @UniqueConstraint(columnNames = { "sid", "principal" }) }) public class AclSid { /***/ private static final long serialVersionUID = 1L; @NotNull @Size(max = 100) @Column(nullable = false, length = 100) private String sid; @NotNull private boolean principal; @OneToMany(cascade = CascadeType.ALL, mappedBy = "ownerSid") private Set<AclIdentity> objectIdentitys = new HashSet<AclIdentity>(); @OneToMany(cascade = CascadeType.ALL, mappedBy = "grantedSid") private Set<AclEntry> entries = new HashSet<AclEntry>(); }Code:package com.yotexs.core.model.security; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.OneToMany; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import javax.validation.constraints.NotNull; import org.springframework.roo.addon.entity.RooEntity; import org.springframework.roo.addon.javabean.RooJavaBean; import org.springframework.roo.addon.tostring.RooToString; @Entity @RooJavaBean @RooToString @RooEntity @Table(name = "sec_class", uniqueConstraints = { @UniqueConstraint(columnNames = { "clasz" }) }) public class AclClass { /***/ private static final long serialVersionUID = 1L; @NotNull @Column(nullable = false) private String clasz; @OneToMany(cascade = CascadeType.ALL, mappedBy = "objectClasz", orphanRemoval = true) private Set<AclIdentity> objectIdentitys = new HashSet<AclIdentity>(); }Code:package com.yotexs.core.model.security; import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.OneToMany; import javax.persistence.OrderBy; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import org.springframework.roo.addon.entity.RooEntity; import org.springframework.roo.addon.javabean.RooJavaBean; import org.springframework.roo.addon.tostring.RooToString; @Entity @RooJavaBean @RooToString @RooEntity @Table(name = "sec_identity", uniqueConstraints = { @UniqueConstraint(columnNames = { "objectClasz", "objectId" }) }) public class AclIdentity { /***/ private static final long serialVersionUID = 1L; @NotNull @ManyToOne @JoinColumn(name = "objectClasz",nullable = false) private AclClass objectClasz; @NotNull @Size(max = 32) @Column(nullable = false, length = 32) private String objectId; @ManyToOne @JoinColumn private AclSid ownerSid; @NotNull private boolean entriesInheriting; @ManyToOne @JoinColumn private AclIdentity parentObject; @OneToMany(cascade = CascadeType.ALL, mappedBy = "parentObject") private Set<AclIdentity> childrenObjects = new HashSet<AclIdentity>(); @OneToMany(cascade = CascadeType.ALL, mappedBy = "objectIdentity") @OrderBy("entryOrder ASC") private Set<AclEntry> entries = new HashSet<AclEntry>(); }When I execute "perform tests" on Roo Shell, tests always fail and throw below Error ,I'm newer for roo,any body help me !!,thxsCode:package com.yotexs.core.model.security; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import javax.persistence.UniqueConstraint; import javax.validation.constraints.NotNull; import org.springframework.roo.addon.entity.RooEntity; import org.springframework.roo.addon.javabean.RooJavaBean; import org.springframework.roo.addon.tostring.RooToString; @Entity @RooJavaBean @RooToString @RooEntity @Table(name = "sec_entry", uniqueConstraints = { @UniqueConstraint(columnNames = { "objectIdentity", "entryOrder" }) }) public class AclEntry { /***/ private static final long serialVersionUID = 1L; @NotNull @Column(nullable = false) private int mask; @NotNull private int entryOrder; @NotNull @Column(nullable = false) private boolean granting; @NotNull private boolean auditSuccess; @NotNull private boolean auditFailure; @NotNull @ManyToOne(optional = false) @JoinColumn(name = "objectIdentity") private AclIdentity objectIdentity; @NotNull @ManyToOne(optional = false) @JoinColumn private AclSid grantedSid; }
Code:------------------------------------------------------------------------------- Test set: com.yotexs.core.model.security.AclIdentityIntegrationTest ------------------------------------------------------------------------------- Tests run: 9, Failures: 0, Errors: 8, Skipped: 0, Time elapsed: 4.337 sec <<< FAILURE! testFlush(com.yotexs.core.model.security.AclIdentityIntegrationTest) Time elapsed: 2.621 sec <<< ERROR! javax.validation.ConstraintViolationException: validation failed for classes [com.yotexs.core.model.security.AclIdentity] during persist time for groups [javax.validation.groups.Default, ] at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:132) at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreInsert(BeanValidationEventListener.java:71) at org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:159) at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:65) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:268) at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321) at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204) .......


Reply With Quote