Я пытаюсь сопоставить несколько старых (существующих) таблиц с моими объектами домена. До сих пор с одним отображением 1: n оно работало довольно хорошо. У меня есть таблица ITEM или YFS_ITEM, которая сопоставляется с таблицей Item_Alias (YFS_ITEM_ALIAS) (OmsItemAlias). Мои объекты выглядят ниже для ассоциаций.Сопоставление устаревших таблиц и нескольких hasMany ассоциаций
Когда я создаю или нахожусь на OmsItem, я действительно возвращаю объекты OmsItemAlias. Проблема возникает, когда я ищу инвентарь. По какой-то причине это всегда 0, хотя я знаю, что есть элементы, которые существуют в базе данных.
package com.fheg.orderrouter
class OmsItem {
String id
String item
String description
Double unitCost
String defaultProductClass
String organizationCode
static hasMany = [ aliases : OmsItemAlias,inventoryItems : InventoryItem]
static constraints = {
id(blank: false, nullable: false)
item(nullable: false)
description(nullable: false)
unitCost(nullable: false)
defaultProductClass(nullable: false)
organizationCode(nullable: false)
}
static mapping = {
table 'YFS_ITEM'
version false
id column:'ITEM_KEY', generator:'assigned', sqlType: 'char(24)'
item column: 'ITEM_ID', sqlType: 'char(40)'
description(column: 'DESCRIPTION', sqlType: 'varchar2(500)')
unitCost column: 'UNIT_COST', sqlType: 'NUMBER(19,6)'
defaultProductClass column: 'DEFAULT_PRODUCT_CLASS',sqlType: 'char(10)'
organizationCode column: 'ORGANIZATION_CODE', sqlType: 'char(24)'
aliases(sort:'aliasName', fetch: 'eager')
inventoryItems(fetch: 'eager')
}
}
Здесь код для InventoryItem.
package com.fheg.orderrouter
class InventoryItem {
String id
String organizationCode
String uom
String productClass
static belongsTo = [ invItem : OmsItem ]
static hasMany = [ inventorySupply : InventorySupply]
static constraints = {
id(blank: false, nullable: false)
organizationCode(nullable: false)
// invItem(nullable: false)
uom(nullable: false)
productClass(nullable: false)
}
static mapping = {
table 'YFS_INVENTORY_ITEM'
version false
id column:'INVENTORY_ITEM_KEY', generator:'assigned'
invItem column: 'ITEM_ID'
organizationCode column: 'ORGANIZATION_CODE'
uom column: 'UOM'
productClass column:'PRODUCT_CLASS'
}
}
Я совершенно уверен, что я делаю неправильно в отношении принадлежности/hasMany. Он отлично работает для псевдонимов, но ничего не делает для инвентаря. Любые предложения оцениваются!