उल्लेख किया गया माइकल द्वारा HHH-9114 bug के लिए वर्कअराउंड, उदाहरण के लिए TwitterListedCount
को जोड़कर मेरे मामले में:, (ध्यान दें कि दोनों @Id
और@Type
अभी भी काम करने के लिए उपयोगकर्ता प्रकार के लिए जोड़ा जाना चाहिए) जब स्कीमा पीढ़ी के साथ प्रयोग किया
// TODO: https://hibernate.atlassian.net/browse/HHH-9114
@Override @Id
public long getTwitterUserId() {
return super.getTwitterUserId();
}
@Override @Id
public DateTime getFetchTime() {
return super.getFetchTime();
}
Btw, वैकल्पिक हल एक nasty side-effect HHH-9350 है यह उत्पन्न समग्र कॉलम नकल:
CREATE TABLE buzz.twitterlistedcount
(
id_fetchtime timestamp without time zone NOT NULL,
id_twitteruserid bigint NOT NULL,
_identifiermapper_fetchtime timestamp without time zone NOT NULL,
_identifiermapper_twitteruserid bigint NOT NULL,
listedcount integer NOT NULL,
CONSTRAINT twitterlistedcount_pkey PRIMARY KEY (id_fetchtime, id_twitteruserid)
)
WITH (
OIDS=FALSE
);
मैं @MappedSuperclass
का उपयोग नहीं करने की कोशिश की, लेकिन गलत स्कीमा पीढ़ी अभी भी होता है। बीटीडब्ल्यू मैं DefaultComponentSafeNamingStrategy
का उपयोग कर रहा हूं, जहां बग झूठ बोल सकता है।
@Id
@Basic()
@Column(name="twitteruserid")
private long twitterUserId = 0;
@Id
@Basic()
@Column(name="fetchtime")
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
private DateTime fetchTime = null;
FYI करें, जब Spring Data JPA के साथ उपयोग किया है, यह करने के लिए आवश्यक है: यह शायद एक अलग बग, Hibernate find with composite key. Invalid column name Exception
में पूछा उचित समाधान का मैन्युअल @Column(name=)
जोड़ दिया जाता है, जो स्कीमा पीढ़ी के साथ अच्छी तरह से काम करता है @Id
और @Type
MappedSuperclass
से एनोटेशन हटाएं। अगर इन्हें हटाया नहीं जाता है, तो त्रुटियों में कमी आएगी। यह इस हाइबरनेट बग, बीटीडब्ल्यू की प्रकृति को नहीं बदलता है।
org.springframework.data.mapping.model.MappingException: Ambiguous mapping! Annotation Id configured on field twitterUserId and one of its accessor methods in class TwitterFollowerCount!
at org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.populateAnnotationCache(AnnotationBasedPersistentProperty.java:111)
at org.springframework.data.mapping.model.AnnotationBasedPersistentProperty.<init>(AnnotationBasedPersistentProperty.java:66)
at org.springframework.data.jpa.mapping.JpaPersistentPropertyImpl.<init>(JpaPersistentPropertyImpl.java:86)
at org.springframework.data.jpa.mapping.JpaMetamodelMappingContext.createPersistentProperty(JpaMetamodelMappingContext.java:67)
at org.springframework.data.jpa.mapping.JpaMetamodelMappingContext.createPersistentProperty(JpaMetamodelMappingContext.java:35)
at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.createAndRegisterProperty(AbstractMappingContext.java:449)
at org.springframework.data.mapping.context.AbstractMappingContext$PersistentPropertyCreator.doWith(AbstractMappingContext.java:427)
at org.springframework.util.ReflectionUtils.doWithFields(ReflectionUtils.java:607)
at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:295)
at org.springframework.data.mapping.context.AbstractMappingContext.addPersistentEntity(AbstractMappingContext.java:257)
at org.springframework.data.mapping.context.AbstractMappingContext.initialize(AbstractMappingContext.java:373)
at org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension$JpaMetamodelMappingContextFactoryBean.createInstance(JpaRepositoryConfigExtension.java:216)
at org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension$JpaMetamodelMappingContextFactoryBean.createInstance(JpaRepositoryConfigExtension.java:169)
at org.springframework.beans.factory.config.AbstractFactoryBean.afterPropertiesSet(AbstractFactoryBean.java:134)
at org.springframework.data.jpa.repository.config.JpaRepositoryConfigExtension$JpaMetamodelMappingContextFactoryBean.afterPropertiesSet(JpaRepositoryConfigExtension.java:230)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)
... 40 more
जैसा कि मुझे कुछ विचार मिलते हैं, लेकिन कोई जवाब नहीं, मुझे यह मानना चाहिए कि यह नक्षत्र संभव नहीं है। मुझे सिर्फ दस्तावेज़ों में संकेत नहीं मिल रहा है .... – austrianuser