java - Reasons to change JPA implementation? -
i've heard people during careers have changed jpa implementation in projects, reasons?
jpa interface, , primitive, compared hibernate or toplink's own interfaces.
persistence used in daos , of stuff hidden in genericdao, whenever want switch jpa implementation, thing necessary change genericdao , use custom extensions.
why people using raw jpa implementation instead of using more comfortable interfaces of hibernate or toplink? profit changeability of implementation - right?
sorry weird questions i'm new persistence stuff.
some reasons change jpa implementation :
interesting vendor-specific features
most jpa vendors implement vendor-specific features outside jpa spec developers find convenient enough use in vendor-specific way. (ex: delete-orphan longtime hibernate-only). reason choose particular vendor, or migrate vendor.
compatiblity issues
sometimes might forced change jpa implementation due compatiblity issues.
- for example, when migrating different java ee appserver, may find jpa implementation isn't compliant be, causing issues when configured on java ee server, forcing use built-in jpa implementation of java ee server. after all, once management has decided buy entire stack oracle or ibm, , favorite open source jpa implementation doesn't seem work on stack, bet know doing migrating :)
- even within project, might run compatbility issues. jboss seam example integrates hibernate, , requires little setup. although possible & running toplink, can guarantee you spend more time debugging issues, , run lot more problems.
company guidelines / policies
some companies strict when comes application architecture.
it might
- you forced use specific vendor (ex: toplink when working in oracle environment)
- the company has policy against using open-source or non-approved libraries.
vendor and/or community support
another important 1 amount of support you'll able get, either vendor or community. implementation can have big community behind it, or commercial vendor can offer great support.
jpa spec, , in ideal world, should transparent, , shouldn't care underlying implementation being used, there vendor-specific features or issues need take account.
Comments
Post a Comment