SELECT TIME_FORMAT( `locStart`, '%h:%i %p' ) FROM locationtimes.
我怎么能用JPA来实现
这些是我的数据库表条目
我的java实体类
package models;
package models;
import util.MyConverter;
import javax.persistence.*;
import java.sql.Time;
import java.sql.Timestamp;
/**
* Created by abhinav on 11/2/15.
*/
@Entity
@Table(name = "locationtimes")
//@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id", scope = Locationtimes.class)
public class Locationtimes {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long id;
@Column
public Long locationId;
@Column
public String weekday;
@Column(insertable = false, updatable = false)
@Temporal(TemporalType.TIME)
public Time locStart;
@Column(insertable = false, updatable = false)
public Time locEnd;
@Column(insertable = false, updatable = false)
public Time todayStart;
@Column(insertable = false, updatable = false)
public Time futureStart;
@Column(insertable = false, updatable = false)
public Time futureEnd;
//@Transient
@Column(name = "locStart")
@Convert(converter = MyConverter.class)
public String locStartString;
//@Transient
@Column(name = "locEnd")
@Convert(converter = MyConverter.class)
public String locEndString;
@Column(name = "todayStart")
@Convert(converter = MyConverter.class)
public String todayStartString;
//@Transient
@Column(name = "futureStart")
@Convert(converter = MyConverter.class)
public String futureStartString;
// @Transient
@Column(name = "futureEnd")
@Convert(converter = MyConverter.class)
public String futureEndString;
@Column
public Long modifiedBy;
@Column
public Timestamp modified;
}
最佳答案
我想你的意思是你有时间-
下午14:21--02:21
你想在数据库中保持这种格式吗?
Time对象将时间存储为24小时格式HH24:MM,实际上是从epoch开始的秒数,作为java.util.Date的包装。这意味着AM/PM的添加是一个通过SimpleDateFormat的演示问题-
DateFormat dateFormat = new SimpleDateFormat("hh:mm a");
你可以这样做-
使用SDF直接转换
NamedQuery-到字符(,'HH:MM')
属性转换程序
考虑-
@Column
public Time locEnd;
如果我们将其转换为HH:MM a格式的字符串-
@Column
@Convert(converter = DateStringConverter.class)
public String locEndString;
现在创建converter类-
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
@Converter
public class DateTimeConverter implements AttributeConverter {
private static final dateFormat = new SimpleDateFormat("hh:mm a");
@Override
public Time convertToDatabaseColumn(String datehhmma) {
return dateFormat.parse(datehhmma);
}
@Override
public String convertToEntityAttribute(String datehhmma) {
return dateFormat.parse(datehhmma);
}
}