问题:无法将值插入存储库,因为表关系构建不正确。
我有一个带有spring boot和hibernate构建表的h2 sql server。在创建期间,创建的表少于预期。在创建期间,它将Customer_foos,StockItems_foos和Employees_foos分组到一个表中。这些列仍然在'表格中分配。好像他们还是分开的。
例如{ table_foo
| table_name not null varchar | Customer_foos_id not null Integer | Customer_foos_key not null varchar | StockItems_foos_id not null Integer | StockItems_foos_values varchar | ...
与所需的相比,每个地图都有自己的表格。这样可以避免输入空值时的错误:
table_Customer_foos
| table_name not null varchar | Customer_foos_id not null Integer | Customer_foos_key not null varchar |
和table_StockItems_foos
| table_name not null varchar | StockItems_foos_id not null Integer | StockItems_foos_key varchar |
}
表格设置在一个非常明确的前瞻性问题中,主要实体设置为
@Entity
public class table{
@Id
@NonNull
public String
Name;
@OneToMany(cascade= CascadeType.ALL)
@Nullable
public Map<String, Foo>
Customer_foos,
StockItems_foos,
Employees_foos;
...
}
将副实体作为
@Entity
public class Foo{
@Id
@GeneratedValue
public Integer
Id;
@Nullable
public Double
Percentage,
Quantity;
...
}
Spring 1.4.5 with default dependancies。
答案 0 :(得分:0)
我能够通过为每个地图字段创建一个实体包装来规避这个不幸事件,然后Hibernate为每个地图字段创建一个新表。
我不认为这是一个正确的答案,但它确实有效。
就这样
@Entity
public class Customer_Foos extends Map<String, Foo>{
...
}