Skip to main content

Criteria query for a many to one relationship with join fetch

CriteriaBuilder cb = _entityManager.getCriteriaBuilder();
CriteriaQuery<Message> criteriaQuery = cb.createQuery(Message.class);
Root<Message> messageRoot = criteriaQuery.from(Message.class);
Root<Device> deviceRoot = criteriaQuery.from(Device.class);

Fetch<Message, Device> recipientDeviceFetch = messageRoot.fetch("recipientDevice", JoinType.LEFT);
Join<Message, Device> messageRecipientDeviceJoin = (Join<Message, Device>) recipientDeviceFetch;

        cb.equal(deviceRoot.get(Device.COLUMN_PRIMARY_KEY), devicePrimaryKey)));, messageRoot.get("recipientDevice"), messageRoot.get(Message.COLUMN_CLIENT_MESSAGE_ID)));

List<Message> messages = _entityManager.createQuery(criteriaQuery).getResultList();

return messages;


Popular posts from this blog

Patterns Knowledge

Anti Pattern: Its a pattern which we repeatedly do and which brings negative results. Architecture by implication: Systems lacking a clear and document architecture. Cover Your Assets: Continuing to document and present alternatives, without ever making an architectural decision. Witches Brew: Architectures made by groups resulting in a mix of ideas and lack a clear vision. Gold Plating: Continuing to define an architecture well pass the time which results in no benefits to the architecture. Vendor King: A product dependent architectures leading to a loss of control of architecture and development costs Big Bang Architecture: Designing the entire architecture at the beginning of the project when you know the least about the system.

Some good links -- Client side performance tips -- New exciting Framework, Must read. -- Very good resource to see various javaee projects and explore enterprise architecture and design concepts. -- Lots of interesting open source projects by eclipse -- the main project for supporting more dynamic languages to jvm. -- EcmaScript parser and -- Good place to learn patterns -- This will validate your website css and js -- An example of SHA1 collision attack.


Crypto - Secret Graphy - To Write CryptoLogy - The science of secrets Symmetric Cryptography: Both the parties have the same keys. Asymmetric Cryptography: Both the parties do not have the same keys. They work on the concept of Public and Private Keys. Its also called as Public Key Cryptography. Its very expensive to encrypt and decrypt using Asymmetric Cryptography. Hence there are systems which use both Symmetric and Asymmetric Cryptography together like ECC. Don't implement your own Crypto. Its very easy to do it incorrectly. Side Channel: When you can observer properties of a function other than their functional behaviour it is called as Side Channel. E.g. Knowing how long it takes to encrypt a text, knowing the length of a particular encrypted text. In cryptography,  Kerckhoffs's principle  (also called  Kerckhoffs's  desideratum, assumption, axiom, doctrine or law) was stated by Netherlands born cryptographer Auguste  Kerckhoffs  in the 19th century: A c