Dobry den,
protected void createEntity(User entity) {
kod v metode createEntity zajisti, ze bidirectional vztahy, napr. User
<-> GameComment, jsou nastaveny spravne. Tj. pokud User odkazuje na
nejaky GameComment, tak i GameComment musi odkazovat na User. Zda je
potreba toto delat ci ne bohuzel z ukazky nelze poznat. Mozna je to
opravdu silenost.
Z.T.
--
Zdenek Tronicek
Department of Computer Science and Engineering
Prague tel: +420 2 2435 7410
http://cs.felk.cvut.cz/~tronicek
Quoting Tomáš Procházka <[email protected]>:
Zkoušel jsem REST v Netbeans tak, že jsem z DB vytvořil JPA Entity a z
nich pak vygeneroval RESTový server, Netbeans mimo jiné vytvořil
následující kód pro ukládání nového uživatele do DB. Samotný uživatel
nemá žádné cizí klíče, je pouze součástí mnoha dalších tabulek. Vážně
je nutné při ukládání nové entity provádět takovou šílenost?
/**
* Persist the given entity.
*
* @param entity the entity to persist
*/
protected void createEntity(User entity) {
entity.setId(null);
EntityManager em =
PersistenceService.getInstance().getEntityManager();
em.persist(entity);
for (GameComment value : entity.getGameCommentCollection()) {
User oldEntity = value.getUserId();
value.setUserId(entity);
if (oldEntity != null) {
oldEntity.getGameCommentCollection().remove(entity);
}
}
for (GameFavorite value :
entity.getGameFavoriteCollection()) {
User oldEntity = value.getUserId();
value.setUserId(entity);
if (oldEntity != null) {
oldEntity.getGameFavoriteCollection().remove(entity);
}
}
for (CreditHistory value :
entity.getCreditHistoryCollection()) {
User oldEntity = value.getUserId();
value.setUserId(entity);
if (oldEntity != null) {
oldEntity.getCreditHistoryCollection().remove(entity);
}
}
for (GamePurchased value :
entity.getGamePurchasedCollection()) {
User oldEntity = value.getUserId();
value.setUserId(entity);
if (oldEntity != null) {
oldEntity.getGamePurchasedCollection().remove(entity);
}
}
for (Game value : entity.getGameCollection()) {
User oldEntity = value.getAuthor();
value.setAuthor(entity);
if (oldEntity != null) {
oldEntity.getGameCollection().remove(entity);
}
}
Datum: 21:03:16 7. února 2009
--
---------------------------------------------------------------------
Tomáš Procházka
E-mail: [email protected]
WWW: http://www.atomsoft.cz
ICQ: 87147320
---------------------------------------------------------------------