project-prototypes/ingestion-prototype — pull request #2 by maxromanovsky (2014-09-26 05:29:40+00:00)
Title: DAO API: entities, service interfaces & exceptions

I've created a separated PR for the DAO API to unblock other tasks ASAP and to receive your feedback on design prior to development.

Points to discuss:

1. Entities
1. All constructors w/o arguments
1. `hashCode` and `equals` use auto-generated `id` property. Code style is from IDEA auto-generated methods :)
1. DAO Services
1. Exceptions are being thrown only for business cases (i.e. underlying DB exceptions are not re-thrown as DAO Exceptions)
1. `OptimisticLockException` is used to handle Optimistic Locking using `version` property
1. `save` method is used for both `create` and `update` operations depending on `isNew()` result
1. `Content` entity's `content` property is represented as a `byte[]`, but with getters and setters allowing to manipulate this field as a string
1. I propose to save `Content`'s relations manually prior to saving `Content` object to simplify DAO layer