Path: csiph.com!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: Cecil Westerhof Newsgroups: comp.lang.java.programmer Subject: Re: JPA and extra fields Date: Mon, 17 Aug 2015 08:22:10 +0200 Organization: Decebal Computing Lines: 46 Message-ID: <87r3n2sact.fsf@Equus.decebal.nl> References: <87zj1v3vnq.fsf@Equus.decebal.nl> <55cd52c4$0$298$14726298@news.sunsite.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: mx02.eternal-september.org; posting-host="528adfd6ad074c92fdc6a7f8fb9e23d8"; logging-data="829"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18T+NfNpDD3Bg4XeaGBV7dbIid6xF2UJ9k=" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (gnu/linux) Cancel-Lock: sha1:skGpL5RkOnHaiX8/a1pSJMTGJEk= sha1:2tvDbp4z1k8G2ZkJMhrez4pdkuA= X-Homepage: http://www.decebal.nl/ Xref: csiph.com comp.lang.java.programmer:32334 On Friday 14 Aug 2015 04:30 CEST, Arne Vajhøj wrote: > On 8/13/2015 2:12 PM, Cecil Westerhof wrote: >> I am new to JPA. I have to migrate a JDBC application to JPA. For a >> certain class there are some extra fields in the table that are not >> in the class itself. (For example creation time, modification time >> and user that created the entity.) Is it possible to keep those >> fields in the table and updated, without putting the values in the >> class? > > I can see different ways of moving forward. > > 1) > > Keep those fields out of the class an update them in the database > via triggers. > > Possible create a view without those fields and have the entity map > to that instead of the table. > > 2) > > Add the fields to the class but do not expose them in its > public API. And let them be updated internally. > > Possible by mapping fields and either no getter/setter > or protected. > > 3) > > Add the fields to the entity class the normal way > but create a new domain class without the fields > and convert from entity class to domain class when > leaving DAL. The first option seems the best to me. (But I am not sure it is possible with all fields.) Is also depending on the database. The application uses a CISC database. I am not sure if these have this capability. But I think I have to use the second possibility. -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof