मेरे सभी संस्थाओं @Id
ओरेकल 10 जी बोली के साथ हाइबरनेट का उपयोग करके जेपीए के साथ हाइबरनेट_यूजेंस नामक एक अनुक्रम क्यों बनाया जा रहा है?
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MYENTITY_SEQ")
@SequenceGenerator(name = "MYENTITY_SEQ", sequenceName = "MYENTITY_SEQ")
@Column(name = "MYENTITY", nullable = false)
private Long id;
या
@Id
@Column(name = "MYENTITY")
मुझे लगता है कि एक Oracle अनुक्रम hibernate_sequence
नामित हमेशा बनाई गई है के इस प्रकार का उपयोग करें। ऐसा क्यों है? और मैं इससे कैसे बच सकता हूं?
मैं जेपीए 1 का उपयोग हाइबरनेट 3 और ओरेकल 10 जी बोली के साथ कर रहा हूं।
public void configure(Type type, Properties params, Dialect dialect) throws MappingException {
ObjectNameNormalizer normalizer = (ObjectNameNormalizer) params.get(IDENTIFIER_NORMALIZER);
sequenceName = normalizer.normalizeIdentifierQuoting(
PropertiesHelper.getString(SEQUENCE, params, "hibernate_sequence")
);
parameters = params.getProperty(PARAMETERS);
if (sequenceName.indexOf('.') < 0) {
final String schemaName = normalizer.normalizeIdentifierQuoting(params.getProperty(SCHEMA));
final String catalogName = normalizer.normalizeIdentifierQuoting(params.getProperty(CATALOG));
sequenceName = Table.qualify(
dialect.quote(catalogName),
dialect.quote(schemaName),
dialect.quote(sequenceName)
);
}
else {
// if already qualified there is not much we can do in a portable manner so we pass it
// through and assume the user has set up the name correctly.
}
this.identifierType = type;
sql = dialect.getSequenceNextValString(sequenceName);
}
कहाँ PropertiesHelper.getString(String, Properties, String)
के तीसरे पैरामीटर सामान्य प्रॉपर्टी मूल्य है:
क्या आप वाकई किसी @ एंटिटी के आईडी में कोई विशेषता के बिना @GeneratedValue() के साथ एनोटेट घोषित की जरूरत नहीं है कर रहे हैं ??? –