]
Emmanuel Bernard commented on ANN-824:
--------------------------------------
I think this needs to be fixed. There is no urgency though as in most cases the
nullable=false workaround is good enough (or do the DDL generation oneself)
However I am reluctant to mark it as failure expected as it passes in most DBs and the
tests are meaningful in this case for other problems.
Annotations - MSSQL, DB2, Sybase - Nullable Foreign PK not allowed
------------------------------------------------------------------
Key: ANN-824
URL:
http://opensource.atlassian.com/projects/hibernate/browse/ANN-824
Project: Hibernate Annotations
Issue Type: Bug
Environment: MSSQL, DB2, Sybase
Reporter: Gail Badner
Assignee: Emmanuel Bernard
Fix For: 3.5
MSSQL, DB2, and Sybase require primary key columns to be non-nullable. Some unit tests
are failing using those DBs because a primary keys are defined with one or more nullable
columns. This is happening with both trunk and v3_3_1_GA_CP.
I see other JIRA issues that sound related that are marked as fixed, so I'm surprised
to see these failing in trunk.
HHH-1935 sounds related. It mentions a bug in SchemaUpdate using @MapKey with
@CollectionOfElements.
Workarounds are:
- add "nullable=false" to @JoinColumn
- add "optional=false" to @ManyToOne
- add an @AttributeOverride with @Column(name="mapkey", nullable=false) in case
of a @CollectionOfElements using a Map
- add "nullable=false" in @Column when inside a @CollectionId or inside
@MapKey
I've included the table DDL causing the failure. Also, there were some tests I
couldn't get to pass using a workaround.
org.hibernate.test.annotations.any.AnyTest
create table map_properties ( map_id int not null, property_type varchar(255) null,
property_id int not null, map_key varchar(255) null, primary key (map_id,
map_key) )
org.hibernate.test.annotations.cid.CompositeIdTest
create table A ( bid numeric(19,0) null, cid numeric(19,0) null, primary key (bid,
cid) )
create table Child ( nth int not null, parentFirstName varchar(255) null,
parentLastName varchar(255) null,
primary key (nth, parentFirstName, parentLastName) )
create table TvMagazin ( time datetime null, chan_id int null, presenter_name
varchar(255) null,
primary key (chan_id, presenter_name) )
create table TvProgram ( time datetime null, channel_id int null, presenter_name
varchar(255) null,
primary key (channel_id, presenter_name) )
create table TvProgramIdClass ( time datetime null, channel_id int null,
presenter_name varchar(255) null,
primary key (channel_id, presenter_name) )
org.hibernate.test.annotations.collectionelement.CollectionElementTest
create table Matrix_values ( Matrix_id int not null, element float null, mapkey int
null,
primary key (Matrix_id, mapkey) )
create table ScorePerNickName ( BoyId int not null, fld_score int null, mapkey
varchar(255) null,
primary key (BoyId, mapkey) )
create table TestCourse_variations ( TestCourse_testCourseId numeric(19,0) not null,
element varchar(255) null, language_code varchar(255) null,
primary key (TestCourse_testCourseId, language_code) )
org.hibernate.test.annotations.collectionelement.indexedCollection.IndexedCollectionOfElementsTest.testIndexedCollectionOfElements
create table contact ( n_key_person int not null, name varchar(255) null,
n_key_contact numeric(19,0) null,
primary key (n_key_contact) )
org.hibernate.test.annotations.identifiercollection.IdentifierCollectionTest.testIdBag
NOTE: I could not find a workaround to fix this test.
create table PASSPORT_STAMP ( Passport_passport_id numeric(19,0) not null,
stamps_id numeric(19,0) not null, COLLECTION_ID numeric(19,0) null,
primary key (COLLECTION_ID) )
create table PASSPORT_VISASTAMP ( Passport_passport_id numeric(19,0) not null,
visaStamp_id numeric(19,0) not null, COLLECTION_ID numeric(19,0) null,
primary key (COLLECTION_ID) )
org.hibernate.test.annotations.indexcoll.IndexedCollectionTest
create table Atmosphere_Gas ( Atmosphere_id int not null, gases_id int not null,
gas_name varchar(255) null, primary key (Atmosphere_id, gas_name) )
org.hibernate.test.annotations.target.TargetTest
NOTE: I could not find a workaround to fix this test.
create table Brand_LuggageImpl ( Brand_id numeric(19,0) not null,
luggagesBySize_id numeric(19,0) not null, name varchar(255) null,
primary key (Brand_id, name) )
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: