Hi everebody. I would like to contribute to the CVS repository but I've only read access.
We've been in problems with M:N relations, a column name mismatched was raised and the reason is inside PersistenceBrokerImpl. The solution for the problem is use criteria.addEqualToField and not criteria.addEqualToColumn inside method 'getMtoNQuery'. private Query getMtoNQuery(Object obj, ClassDescriptor cld, CollectionDescriptor cod) { Object[] values = brokerHelper.getKeyValues(cld, obj); Object[] thisClassFks = cod.getFksToThisClass(); Object[] itemClassFks = cod.getFksToItemClass(); ClassDescriptor refCld = getClassDescriptor(cod.getItemClass()); Criteria criteria = new Criteria(); Query query; for (int i = 0; i < thisClassFks.length; i++) { criteria.addEqualTo(cod.getIndirectionTable() + "." + thisClassFks[i], values[i]); } for (int i = 0; i < itemClassFks.length; i++) { /* criteria.addEqualToColumn( cod.getIndirectionTable() + "." + itemClassFks[i].toString(), refCld.getPkFields()[i].getAttributeName());*/ criteria.addEqualToField( cod.getIndirectionTable() + "." + itemClassFks[i].toString(), refCld.getPkFields()[i].getAttributeName()); } query = QueryFactory.newQuery(refCld.getClassOfObject(), cod.getIndirectionTable(), criteria); return query; }