Błąd jest spowodowany tym, że Liferay nie inkrementował klucza głównego. W pliku http://www.liferay.com/dtd/liferay-service-builder_5_2_0.dtd jest podanych kilka przykładów jak można uzyskać automatyczną inkrementację klucza, jednak każdy z nich ma jakieś ograniczenia lub ograniczone zastosowania. Tutaj podam przykład jak można to zrobić w inny sposób.
Podpatrując źródła Liferay'a, np. klasę GroupLocalServiceImpl.java znalazłem coś takiego:
String groupId = Long.toString(CounterLocalServiceUtil.increment(Group.class.getName()));
Tak więc, wystarczy zrobić coś takiego:
Entity e = EntityLocalServiceUtil.createEntity(CounterLocalServiceUtil.increment(Entity.class.getName()));
e.setContent("foobar");
EntityLocalServiceUtil.addEntity(e);
1 komentarz:
Thanks man, it was helpful.
Prześlij komentarz