Я новичок в спящий режим и в моем текущем проекте спящем конфигурационный файл, я обнаружил некоторые коды, как показано ниже:Что такое использование параметра в Hibernate <generator> тег?
<id name="id" column="ANNOBATCHJOBLOGID">
<generator class="sg.gov.frontier.core.techinfra.persistence.dao.SequenceGeneratorYYYYMMDD">
<param name="sequence">ANNO_BATCH_JOB_LOG_SEQ</param>
</generator>
</id>
просто чувствовать путать о Парам тега, может кто-то сказать мне, что использование этого? а также «ANNO_BATCH_JOB_LOG_SEQ» .thanks много класс
SequenceGeneratorYYYYMMDD здесь:
public class SequenceGeneratorYYYYMMDD extends SequenceGenerator {
protected Logger logger = Logger.getLogger(SequenceGeneratorYYYYMMDD.class);
public String sequenceName;
public String parameters;
public static final long SEQUENCE_MIN_NUMBER = 1;
public static final long SEQUENCE_MAX_NUMBER = 999999;
public static final long SEQUENCE_INCREMENT_NUMBER = 1;
public static final long SEQUENCE_START_NUMBER = 1;
public SequenceGeneratorYYYYMMDD() {
super();
}
public long getNextSequenceForSequenceName(String strSequenceName)
throws DataAccessObjectException {
final SequenceDao sequenceDao = new SequenceDao();
Long sequence = sequenceDao.getNextKey(strSequenceName);
return sequence;
}
public void configure(Type type, Properties params, Dialect dialect)
throws MappingException {
this.sequenceName = getString(SEQUENCE, params, "hibernate_sequence");
this.parameters = params.getProperty(PARAMETERS);
String schemaName = params.getProperty(SCHEMA);
String catalogName = params.getProperty(CATALOG);
if (sequenceName.indexOf('.') < 0) {
sequenceName = Table.qualify(catalogName, schemaName, sequenceName);
}
}
public String getString(String property, Properties properties,
String defaultValue) {
String propValue = properties.getProperty(property);
return propValue == null ? defaultValue : propValue;
}
public Serializable generate(SessionImplementor session, Object obj)
throws HibernateException {
String result = DateUtil.convertDateToDateString(new DateTime(),
"yyMMddHH");
try {
result = result
+ StringUtil
.leftPad(
String.valueOf(getNextSequenceForSequenceName(sequenceName)),
'0', 8);
} catch (DataAccessObjectException e) {
throw new HibernateException(e.getMessage(), e.getCause());
}
logger.debug("Generated sequence no. " + result);
return new Long(result);
}
}
, как я могу знать, какой метод мне нужно передать из параметров? хотя представляется метод getNextSequenceForSequenceName().
Давайте посмотрим ваш класс 'SequenceGeneratorYYYYMMDD'. –
Да выглядит как последовательность, жаль, что я был очевиден, но что-то классное, что я нашел, это некоторые аннотации, которые вы можете контролировать, связанные с этим. Последовательности Google в спящем режиме, чтобы найти их. Я думаю, что параметр сообщает программе, что ANNO_BATCH_JOB_LOG_SEQ является последовательностью. Помещенный с тегом генератора в качестве родителя, вероятно, говорит, что спящий режим использует эту последовательность с генератором. Считаете ли вы, что это связано с каротажем? –