[hibernate-issues] [Hibernate-JIRA] Closed: (HBX-826) Code generator: sortedset are not instantiated by default
Max Rydahl Andersen (JIRA)
noreply at atlassian.com
Mon Aug 20 07:31:13 EDT 2007
[ http://opensource.atlassian.com/projects/hibernate/browse/HBX-826?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Max Rydahl Andersen closed HBX-826.
-----------------------------------
Resolution: Fixed
Fix Version/s: 3.2.beta11
Multiple issues here fixed in one:
* basic type is now sorted or not (SortedMap vs. Map)
* do not try and instantiate the comparator (circular dependency on not-yet generated code in sorter possible now)
* generate default value with comparator so it is also correctly sorted when it is not persistent (new Set(new Comparator());
* ...and handle that TreeMap/TreeSet does not support (0) as init value.
Example:
import comparator.NoopComparator;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.SortedSet;
import java.util.TreeMap;
import java.util.TreeSet;
public class Article implements java.io.Serializable {
...
private List<Article> bagarticles = new ArrayList<Article>(0);
private Map<String,Article> AMap = new HashMap<String,Article>(0);
private List<Article> aList = new ArrayList<Article>(0);
private SortedSet<Article> sortedArticlesSet = new TreeSet<Article>(new NoopComparator());
private SortedMap<String,Article> sortedArticlesMap = new TreeMap<String,Article>(new NoopComparator());
private SortedMap<String,Article> naturalSortedArticlesMap = new TreeMap<String,Article>();
...
In svn now - would love to get feedback/verification on it fixing your issue!
> Code generator: sortedset are not instantiated by default
> ----------------------------------------------------------
>
> Key: HBX-826
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HBX-826
> Project: Hibernate Tools
> Issue Type: Bug
> Components: hbm2java
> Affects Versions: 3.1beta3
> Environment: Hibernate 3.1.3 and plus.
> MySQL 5.0
> Reporter: Julien Fourment
> Priority: Minor
> Fix For: 3.2.beta11
>
>
> Hi,
> When defining a regular (not sorted) set in an hbm file, the generated java will define the field as this:
> private Set<Package> packages = new HashSet<Package>(0);
> But when defining a sorted set in the my hbm file (using sort attribute with a comparator class) the generated java looks like this:
> private SortedSet<ServiceVersion> versions;
> Type is correct, but the field in not populated with a default implementation by default, like treeset ?
> I would expect something like :
> private SortedSet<ServiceVersion> versions = new TreeSet<ServiceVersion>(new myComparator());
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list