blob: ee6fbd1c4c158059cf681dc5cbd2bcfc0d12451c [file] [log] [blame]
/*
* Copyright (c) 2005, 2020 Oracle and/or its affiliates. All rights reserved.
* 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 v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// SAP - initial API and implementation
package org.eclipse.persistence.testing.models.wdf.jpa1.types;
import java.math.BigInteger;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import jakarta.persistence.Basic;
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.PostUpdate;
import jakarta.persistence.Table;
import jakarta.persistence.Temporal;
import jakarta.persistence.TemporalType;
import jakarta.persistence.Transient;
/*
* This entity class contains all supported <i>basic </i> data types.
*
* The Basic annotation is the simplest type of mapping to a database column. It can optionally be applied to any persistent
* property or instance variable of the following type: Java primitive types, wrappers of the primitive types, java.lang.String,
* java.math.BigInteger, java.math.BigDecimal, java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Time,
* java.sql.Timestamp, byte[], Byte[], char[], Character[], enums, and any other type that implements Serializable.
*/
@Entity
@Table(name = "TMP_TEMPORAL_FA")
public class TemporalTypesFieldAccess {
@Transient
private boolean postUpdateCalled;
protected TemporalTypesFieldAccess() {
}
public TemporalTypesFieldAccess(BigInteger anId) {
id = anId;
}
@Id
@Column(name = "ID", length = 19)
// issue id 8: was length = 20
private BigInteger id;
// (mutable) temporal types
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UTIL_DATE_TS")
protected Date utilDateAsTimestamp;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "UTIL_CALENDAR_TS")
protected Calendar utilCalendarAsTimestamp;
@Temporal(TemporalType.DATE)
@Column(name = "UTIL_DATE_D")
protected Date utilDateAsDate;
@Temporal(TemporalType.DATE)
@Column(name = "UTIL_CALENDAR_D")
protected Calendar utilCalendarAsDate;
@Basic
@Temporal(TemporalType.TIME)
@Column(name = "UTIL_DATE_T")
protected Date utilDateAsTime;
@Basic
// intentionally combined @Basic and @Temporal
@Temporal(TemporalType.TIME)
@Column(name = "UTIL_CALENDAR_T")
protected Calendar utilCalendarAsTime;
@Basic
@Column(name = "SQL_DATE")
protected java.sql.Date sqlDate;
@Basic
@Column(name = "SQL_TIME")
protected Time sqlTime;
@Basic
@Column(name = "SQL_TIMESTAMP")
protected Timestamp sqlTimestamp;
public void fill() {
sqlDate = java.sql.Date.valueOf("2005-09-08");
sqlTime = Time.valueOf("10:49:00");
sqlTimestamp = new Timestamp(17000);
utilDateAsTimestamp = new Date(sqlTimestamp.getTime());
utilDateAsTime = new Date(sqlTime.getTime());
utilDateAsDate = new Date(sqlDate.getTime());
utilCalendarAsTimestamp = new GregorianCalendar(2005, 9, 8, 10, 49);
utilCalendarAsDate = new GregorianCalendar(2005, 9, 8);
utilCalendarAsTime = new GregorianCalendar(1970, 1, 1, 10, 49);
}
public BigInteger getId() {
return id;
}
public java.sql.Date getSqlDate() {
return sqlDate;
}
public void setSqlDate(java.sql.Date sqlDate) {
this.sqlDate = sqlDate;
}
public Time getSqlTime() {
return sqlTime;
}
public void setSqlTime(Time sqlTime) {
this.sqlTime = sqlTime;
}
public Timestamp getSqlTimestamp() {
return sqlTimestamp;
}
public void setSqlTimestamp(Timestamp sqlTimestamp) {
this.sqlTimestamp = sqlTimestamp;
}
public Calendar getUtilCalendarAsDate() {
return utilCalendarAsDate;
}
public void setUtilCalendarAsDate(Calendar utilCalendarAsDate) {
this.utilCalendarAsDate = utilCalendarAsDate;
}
public Calendar getUtilCalendarAsTime() {
return utilCalendarAsTime;
}
public void setUtilCalendarAsTime(Calendar utilCalendarAsTime) {
this.utilCalendarAsTime = utilCalendarAsTime;
}
public Calendar getUtilCalendarAsTimestamp() {
return utilCalendarAsTimestamp;
}
public void setUtilCalendarAsTimestamp(Calendar utilCalendarAsTimestamp) {
this.utilCalendarAsTimestamp = utilCalendarAsTimestamp;
}
public Date getUtilDateAsDate() {
return utilDateAsDate;
}
public void setUtilDateAsDate(Date utilDateAsDate) {
this.utilDateAsDate = utilDateAsDate;
}
public Date getUtilDateAsTime() {
return utilDateAsTime;
}
public void setUtilDateAsTime(Date utilDateAsTime) {
this.utilDateAsTime = utilDateAsTime;
}
public Date getUtilDateAsTimestamp() {
return utilDateAsTimestamp;
}
public void setUtilDateAsTimestamp(Date utilDateAsTimestamp) {
this.utilDateAsTimestamp = utilDateAsTimestamp;
}
@PostUpdate
public void postUpdate() {
postUpdateCalled = true;
}
public boolean postUpdateWasCalled() {
return postUpdateCalled;
}
}