Ich arbeite mit Sequenzen im Hibernate, wir haben eine Benennungseinschränkung in Bezug auf Sequence Naming das Format ist SEQ_. Wie kann ich die Klasse SequenceStyleGenerator anpassen/parametrisieren, um ein Präfix im Sequenznamen zu erhalten?SequenceStyleGenerator, wie man Präfix anstelle von Suffix benutzt
0
A
Antwort
0
Ich endete mit dem Erstellen einer Klasse, die von SequenceStyleGenerator erben und überschreiben die DetermineSequenceName-Funktion, um ein Präfix zu haben.
public class PrefixSequenceStyleGenerator extends SequenceStyleGenerator {
public static final String CONFIG_PREFER_PREFIX = "prefer_sequence_prefix";
public static final String CONFIG_SEQUENCE_PER_ENTITY_PREFIX = "sequence_per_entity_prefix";
public static final String DEF_SEQUENCE_PREFIX = "SEQ_";
@Override
protected String determineSequenceName(Properties params, Dialect dialect) {
boolean usePrefix = ConfigurationHelper.getBoolean(CONFIG_PREFER_PREFIX, params, false);
if(usePrefix){
final String sequencePerEntityPrefix = ConfigurationHelper.getString(CONFIG_SEQUENCE_PER_ENTITY_PREFIX, params, DEF_SEQUENCE_PREFIX);
String sequenceName = ConfigurationHelper.getBoolean(CONFIG_PREFER_SEQUENCE_PER_ENTITY, params, false) ? sequencePerEntityPrefix + params.getProperty(JPA_ENTITY_NAME) : DEF_SEQUENCE_NAME;
final ObjectNameNormalizer normalizer = (ObjectNameNormalizer) params.get(IDENTIFIER_NORMALIZER);
sequenceName = ConfigurationHelper.getString(SEQUENCE_PARAM, params, sequenceName);
if (sequenceName.indexOf('.') < 0) {
sequenceName = normalizer.normalizeIdentifierQuoting(sequenceName);
final String schemaName = params.getProperty(SCHEMA);
final String catalogName = params.getProperty(CATALOG);
sequenceName = Table.qualify(
dialect.quote(catalogName),
dialect.quote(schemaName),
dialect.quote(sequenceName)
);
}
return sequenceName;
}else{
return super.determineSequenceName(params, dialect);
}
}
}
und ich benutze es in meinem Super-Klasse:
@MappedSuperclass
public class AbstractModelWithTableSequence implementiert AbstractModelInterface {
private static final long serialVersionUID = 6503670320979543539L;
@Id
@Column(name="id")
@GenericGenerator(name = "seq_generator",
strategy = "com.gms.utils.PrefixSequenceStyleGenerator",
parameters = {
@org.hibernate.annotations.Parameter(
name = "optimizer", value = "pooled-lo"),
@org.hibernate.annotations.Parameter(
name = "initial_value", value = "1"),
@org.hibernate.annotations.Parameter(
name = "increment_size", value = "1"),
@org.hibernate.annotations.Parameter(
name = PrefixSequenceStyleGenerator.CONFIG_PREFER_SEQUENCE_PER_ENTITY, value = "true"),
@org.hibernate.annotations.Parameter(
name = PrefixSequenceStyleGenerator.CONFIG_SEQUENCE_PER_ENTITY_PREFIX, value = "SEQ_"),
@org.hibernate.annotations.Parameter(
name = PrefixSequenceStyleGenerator.CONFIG_PREFER_PREFIX, value = "true"),
}
)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_generator")
private Long id;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
@Override
public boolean isNew() {
return getId() == null || getId() == 0;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
AbstractModelWithTableSequence other = (AbstractModelWithTableSequence) obj;
if (id == null) {
if (other.id != null) {
return false;
}
} else if (!id.equals(other.id)) {
return false;
}
return true;
}
}
Verwandte Themen
- 1. Längstes gemeinsames Suffix-Präfix
- 2. Präfix/Suffix für Klassen
- 3. Längstes Präfix-Suffix
- 4. Wie benutzt man das dotnet-pack --version-Suffix mit csproj?
- 5. Ist apcu_fetch() schneller mit Präfix oder Suffix?
- 6. Wie unter Verwendung von Präfix oder Suffix-Strings in SQL
- 7. Wie benutzt man ein Schlüsselwort anstelle von $ in jquery?
- 8. Geb: Wie benutzt man Marionette anstelle von Selen Webdriver?
- 9. Suche nach Wörtern mit Präfix & Suffix
- 10. Doctrine bekomme Array ohne Präfix oder Suffix
- 11. Dateien finden, wo Präfix und Suffix übereinstimmen
- 12. Regex Ausdruck sowohl Präfix und Suffix auszuschließen
- 13. Naming Convention JUnit Suffix oder Präfix-Test
- 14. Kann Liste Verständnis haben ein Präfix, Suffix?
- 15. Präfix und Suffix Wildcards in Mysql Volltextsuche
- 16. Parsen von Wörtern in (Präfix, Wurzel, Suffix) in Python
- 17. Regex entspricht den Präfix und Suffix von Strings mit Zahlen
- 18. Wie extrahiere ich Inhalt zwischen einem Präfix und einem Suffix?
- 19. EDIT: wie man Gzip anstelle von Teer
- 20. Welches Präfix benutzt NGINX für "include"?
- 21. Wie ersetzt man alle Vorkommen mit regexp auf Präfix und Suffix?
- 22. Wie benutzt man TextAction
- 23. Funktion, die ihre Ausgangsparameter umbenennt, entsprechend einigen Eingangsparametern (Präfix/Suffix)
- 24. Wie benutzt man ActionMenuView?
- 25. Wie benutzt man org.netbeans.swing.outline?
- 26. Wie benutzt man Resources.getFraction()?
- 27. Wie benutzt man JProgressBar?
- 28. Wie benutzt man will_paginate?
- 29. Java String.replaceAll basierend auf Muster Präfix und Suffix anhängen
- 30. Wie benutzt man TCharHelper?