Java bean Формат :
public class Format extends HibernateBean implements Serializable {
private static final Logger log = Logger.getLogger(Format.class);
private Long id;
private boolean isQualifyFormat;
...other fields
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
**//static method, it's exposed to a HttpServlet**
public static Format getQualifyFormat() throws HibernateException {
log.debug("getQualifyFormat");
...
}
/**
* @hibernate.property column="df_isqualifyinglistformat" type="boolean"
* @return boolean
*/
public boolean isQualifyFormat() {
log.debug ("isQualifyFormat");
return isQualifyingListFormat;
}
public void setQualifyFormat(boolean qualifyFormat) {
isQualifyingListFormat = qualifyingListFormat;
}
...
}
Файл отображения Hibernate, Format.hbm.xml
<hibernate-mapping>
<class
name="Format"
table="dbo.mc_distribution_format"
schema="data"
>
<id
name="id"
column="df_formatid"
type="java.lang.Long"
>
<generator class="native"></generator>
</id>
<property
name="qualifyFormat"
type="boolean"
update="true"
insert="true"
column="df_isqualifyformat"
/>
В теоретическом методеisQualifyFormat формата bean должен вызываться в процессе сохранения Hibernate для формата bean.Насколько я знаю, получатель логического свойства может иметь вид is- или get- .Метод is- имеет приоритет, если оба доступны в bean-компоненте.
Но , он работает хорошо в большинстве случаев, кроме случая: если есть какой-либо код, ссылается настатический метод Format.getQualifyFormat в том же пакете jar.Вышеупомянутый метод getQualifyFormat вызывается вместо этого каким-то образом, даже если он статический и там уже есть is- .
Это происходит, когда я обновил свой код до JDK 1.5.Это было хорошо в JDK 1.4.Я предполагаю, что это может быть вызвано проблемой улучшения отражения в JDk 1.5, jdk / jre анализирует код и находит ссылку статического метода getQualifyFormat во время компиляции, а затем кэширует его как получатель по умолчанию для свойства qualifyFormat?
Anyидеи?