Я нашел его... for (property in object) { // do stuff }
перечислит все свойства, и поэтому все глобально заявленные переменные на объекте окна..
Разве this не делает то, что вам нужно?
Чтобы подробнее рассказать о легкомысленном начальном ответе, в справочнике приведены средства для использования порядкового номера перечисления для сопоставления перечислений .
В этом случае это на самом деле проще, чем кажется, поскольку вы размещаете перечисления в наборе, вам необходимо предоставить метод доступа для WicketType к подтипу IntEnumUserType, супертип позаботится о сопоставлении порядковый номер экземпляра.
package test;
public class WicketTypeState extends IntEnumUserType<WicketType> {
private WicketType wicketType;
public WicketTypeState() {
// we must give the values of the enum to the parent.
super(WicketType.class, WicketType.values());
}
public WicketType getWicketType() {
return wicketType;
}
public void setWicketType(final WicketType wicketType) {
this.wicketType = wicketType;
}
}
Определите сопоставления для таблицы перечислений:
<hibernate-mapping package="test">
<class name="Wicket" table="Wicket">
<id name="id" column="ID"/>
<set name="wicketTypes" table="WicketType" inverse="true">
<key column="ID"/>
<one-to-many class="test.WicketTypeState"/>
</set>
</class>
</hibernate-mapping>
Затем для типа с набором перечислений определите сопоставление набора для этого свойства:
<hibernate-mapping package="test">
<class name="WicketTypeState" lazy="true" table="WicketType">
<id name="WicketType"
type="test.WicketTypeState"/>
</class>
</hibernate-mapping>
Это сработало на моем поле (tm), дайте мне знать, если вам понадобится дополнительная информация.
В примере кода ниже показано, как то, что вы хотите, может быть достигнуто с помощью аннотаций.
@Entity
@Table (name = "wicket")
public class Wicket {
...
...
private List<WicketType> wicketTypes = new ArrayList<WicketType>();
@CollectionOfElements(fetch=FetchType.EAGER)
@JoinTable(
name="wicket_wicket_types", // ref table.
joinColumns = {@JoinColumn(name="wicket_id")}
)
@Column(name="wicket_type_id")
public List<WicketType> getWicketTypes() {
return this.wicketTypes;
}
public void setWicketTypes(List<WicketType> wicketTypes) {
this.wicketTypes = wicketTypes;
}
...
...
}
WicketType
- это стандартное перечисление Java 5, порядок и порядковые номера объявлений которого соответствуют порядку и столбцу ( wicket_type_id
) значения в таблице wicket_type
.
public enum WicketType {
WICKET_TYPE1, WICKET_TYPE2 ...
}