[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1935?page=c...
]
Hardy Ferentschik commented on HHH-1935:
----------------------------------------
There seem to be a bug in the schema export for SQLServer. The generate table create
statement looks like this:
create table A_B (A_id int not null, b_id int not null, mapkey
varchar(255) null, primary key (A_id, mapkey), unique (b_id));
The problem is 'mapkey varchar(255) null' - you cannot have a nullable column in a
multicolumn primary key. For other databases the script seems to be ok. , eg postgres
create table A_B (A_id int4 not null, b_id int4 not null, mapkey
varchar(255), primary key (A_id, mapkey), unique (b_id));
There is a workaround using the @MapKey annotation
@OneToMany
@MapKey(columns=@Column(name="mapkey", nullable=false))
private Map<A, B> b;
Using the @Column you can make sure that the mapkey column will be nullable.
Hibernate produces invalid "create table" SQL for Maps on
SQL Server 2000
-------------------------------------------------------------------------
Key: HHH-1935
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1935
Project: Hibernate3
Issue Type: Bug
Affects Versions: 3.2.0.cr2
Environment: Hibernate 3.2.0.cr2
Microsoft SQL Server 2000
Reporter: Bill Johnson
I have two cases where Hibernate3 produces invalid SQL for MS SQL Server 2000:
Case 1:
@CollectionOfElements
@org.hibernate.annotations.MapKey
protected Map<String, String> properties;
Case 2:
@ManyToMany
@MapKeyManyToMany
private Map<A, B> b;
In Case 2, A and B are entities creating a ternary relationship between the parent class,
A and B, and I get the following log output:
ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] - <Unsuccessful: create table A_B
(A_id numeric(19,0) not null, b_id numeric(19,0) not null, key_id numeric(19,0) null,
primary key (A_id, key_id), unique (key_id))>
ERROR [org.hibernate.tool.hbm2ddl.SchemaUpdate] - <Cannot define PRIMARY KEY
constraint on nullable column in table 'A_B'.>
Hibernate should not attempt to create a nullable primary key column by default on MS SQL
Server.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira