/******************************************************************************* * Copyright (c) 2005, 2015 SAP. All rights reserved. * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0 * which accompanies this distribution. * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html * and the Eclipse Distribution License is available at * http://www.eclipse.org/org/documents/edl-v10.php. * * Contributors: * SAP - initial API and implementation ******************************************************************************/ package org.eclipse.persistence.testing.models.wdf.jpa1.employee; import java.util.Date; import javax.persistence.AttributeOverride; import javax.persistence.AttributeOverrides; import javax.persistence.Column; import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.PostUpdate; import javax.persistence.Table; import javax.persistence.Transient; @Entity @Table(name = "TMP_EMBEDD_PA") public class EmbeddingPropertyAccess { private boolean postUpdateCalled; public EmbeddingPropertyAccess() { } public EmbeddingPropertyAccess(int anId) { _id = anId; } private int _id; private EmbeddedFieldAccess _fieldAccess; private EmbeddedPropertyAccess _propertyAccess; public void fill() { final long theTime = 123456789012345L; _fieldAccess = new EmbeddedFieldAccess(); _fieldAccess.changeDate(new Date(theTime)); _fieldAccess.changeTime(theTime); _propertyAccess = new EmbeddedPropertyAccess(); _propertyAccess.setDate(new Date(theTime)); _propertyAccess.setTime(theTime); } public void clearPostUpdate() { postUpdateCalled = false; } @PostUpdate public void postUpdate() { postUpdateCalled = true; } public boolean postUpdateWasCalled() { return postUpdateCalled; } /* * Nesting different access types is currently not supported (PFD EJB-Persistence 21.01.2006) * * @Embedded * * @AttributeOverrides( { @AttributeOverride(name = "date", column = @Column(name = "EMB_FA_DATE")), * * @AttributeOverride(name = "time", column = @Column(name = "EMB_FA_TIME")) }) */ @Transient public EmbeddedFieldAccess getFieldAccess() { return _fieldAccess; } public void setFieldAccess(final EmbeddedFieldAccess fieldAccess) { _fieldAccess = fieldAccess; } @Embedded @AttributeOverrides( { @AttributeOverride(name = "date", column = @Column(name = "EMB_PA_DATE")), @AttributeOverride(name = "time", column = @Column(name = "EMB_PA_LONG")) }) public EmbeddedPropertyAccess getPropertyAccess() { return _propertyAccess; } public void setPropertyAccess(final EmbeddedPropertyAccess propertyAccess) { _propertyAccess = propertyAccess; } @Id public int getId() { return _id; } public void setId(int id) { _id = id; } }