目前我有一个基本实体,如下所示:
LocalDateTime
是否可以使用某些内容注释func getLeapCount(startDate : NSDate , endDate : NSDate)-> Int{
var intialDate = startDate
var dateComponent = NSDateComponents()
dateComponent.day = 1
var leapCount = 0;
var currentCalendar = NSCalendar.currentCalendar()
while (intialDate.compare(endDate) == NSComparisonResult.OrderedAscending) {
intialDate = currentCalendar.dateByAddingComponents(dateComponent, toDate: intialDate, options: NSCalendarOptions.allZeros)!
if self.isLeapYear(startDate){
++leapCount
}
}
return leapCount
}
func isLeapYear (year : NSDate )-> Bool{
let cal = NSCalendar.currentCalendar()
let year = cal.component(NSCalendarUnit.CalendarUnitYear, fromDate: year)
return (( year%100 != 0) && (year%4 == 0)) || year%400 == 0;
}
以使数据库默认为当前日期和时间?
P.S。我不允许使用hibernate 5.
答案 0 :(得分:1)
您可以使用@PrePersist注释。
在实体管理器实际执行操作之前执行 执行或级联。此调用与持久性同步 操作
示例:
@PrePersist
protected void onCreate() {
createdAt = new LocalDateTime();
updatedAt = new LocalDateTime();
}
如果你认为合适,你也可以使用@PreUpdate注释。
详细了解events that occur inside hibernate's persistence mechanism
答案 1 :(得分:0)
@LaurentiuL是正确的。
但我认为以下也应该有效
@Convert(converter = LocalDateTimePersistenceConverter.class)
private LocalDateTime createdAt = new LocalDateTime ();
@Convert(converter = LocalDateTimePersistenceConverter.class)
private LocalDateTime updatedAt= new LocalDateTime ();
此问题的答案也可以帮助您:Creation timestamp and last update timestamp with Hibernate and MySQL