Проблема сохранения дочерней сущности в EJB - PullRequest
0 голосов
/ 08 июня 2011

Мой бин сущности с именем Stock содержит

@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL)
@JoinColumn(name="stockid")
private List<StockSize> stockSizeList = new ArrayList<StockSize>();

Мой бин сущности StockSize содержит одно поле stockid из Stock

Ниже приведен код для установки значения сущности Stock *

Stock stock = new Stock();
    stock.setDesignCode("123design");
                stock.setLotNo("123lot");
                stock.setCreatedByUserId(getIBusinessDelegateOperationSessionContext().getUserId());
                stock.setCreatedDate(new Date());
                stock.setIsSystemRecord(StaticTableConstants.NOT_ISSYSTEMRECORD);
                stock.setLastModifiedDate(new Date());
                stock.setLastModifiedByUserId(getIBusinessDelegateOperationSessionContext().getUserId());


    stock.setStockSizeList(listStockSize != null ? listStockSize : new ArrayList<StockSize>());

Выдает ошибку, так как не может запастись, когда контейнер сохраняется. StockSize

Так есть ли в EJB3.0 какие-либо пост-персистентные типы вещей, т.е. StockSize сохраняются после сохранения запасов?

или только одно решение, что я должен сохранить обе сущности отдельно.

1 Ответ

0 голосов
/ 10 июня 2011

, поскольку я не знаю, какую ошибку вы получаете или как сохраняется ваш код, я могу только догадываться ( подсказка * подсказка *)

, но при работе с отношениями Y-To-X характерно то, что родитель (здесь "Stock") не может быть сохранен до его потомков (здесь "StockSize"). Конечно, если stockSize имеет отношение x-Y к Y со складом, вам нужно сначала сохранить пустые объекты и вставить отношения как и обновить.

Если это не решит вашу проблему, пожалуйста, опубликуйте свою трассировку стека.

...