所以,我有使用@Builder lombok注释的类.这是它的外观和我如何使用它:
import lombok.Builder;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonProperty;
@Data
@Builder
public class MyModel {
@JsonProperty(value = "myField1")
private String myField1;
@JsonProperty(value = "myField2")
private String myField2;
@JsonProperty(value = "myField3")
private String myField3;
}
//This is how I use it:
MyModel model = MyModel.builder()
.myField1("value for field 1")
.myField2("value for field 2")
.build();
Run Code Online (Sandbox Code Playgroud)
我的问题是,在这个类中添加一些额外的方法是否是一个好习惯?或者我应该保持原样并在外面做任何业务逻辑?
基本上,让我们说,我需要一个帮助方法来设置myField3属性,因为我不能只做:
.myField3("value for field 3")
.build()Run Code Online (Sandbox Code Playgroud)
我需要对field3执行一些值的操作,之后将其设置为MyModel.
那么我可以将这个辅助方法放到这个类中吗?
我有 2 个 AWC 帐户,每个帐户都有一个 S3 存储桶。我将两个相同大小的 .CSV 文件上传到每个 S3 存储桶。
当我尝试下载或下载为时,此文件在第一个帐户中下载为 .CSV 文件。但是(!!)当我尝试从第二个帐户下载此文件时 - 它以 .TXT 格式下载。
这怎么会发生?这两个文件的创建方式相同:通过 Redshift UNLOAD 查询,执行将选定数据从 Redshift 复制到 S3。
UPDATE : 会不会是因为在这个文档中,**服务器端加密就等于AWS-KMS? 我注意到从 .csv 转换为 .txt 的文件具有“服务器端加密:AWS-KMS”,而作为 .csv 下载的 .csv 文件具有“服务器端加密:无”
更新:在不同的浏览器中尝试过 - 结果相同
我有ElasticSearch索引,可以存储超过1000万个文档。我需要遍历所有索引并为每个文档添加新的字段和值。我知道两种方法:1.使用滚动搜索获取所有结果,并使用BULK api将所有文档复制到新索引中(在复制时添加新字段)。将所有文档复制到新索引后-切换别名。2.使用滚动搜索和批量API更新现有索引中的所有文档(无需复制到新索引和切换别名)。
我不明白,为什么推荐第一种方法?我可以只使用2种方法吗?在使用2种方法运行程序时,是否有可能索引发生问题?我需要更新的索引包含实时产品数据,我担心客户可能会受到某种影响
我需要将"11/17"字符串日期(2017年11月)转换为"2017-11-01"(2017年11月1日).
在Java中实现这一目标的最佳方法是什么?
我试过了:
String dayMonthYear = "11/17";
dayMonthYear = "01/" + dayMonthYear;
DateTimeFormatter formatter = DateTimeFormat.forPattern("dd/MM/yy");
DateTime dt = formatter.parseDateTime(dayMonthYear);
dt.year().setCopy(dt.getYear() + 2000);
DateTimeFormatter dtfOut = DateTimeFormat.forPattern("yyyy-MM-dd");
dayMonthYear = dtfOut.print(dt);
System.out.println(dayMonthYear); // "2017-11-01";
Run Code Online (Sandbox Code Playgroud)
和:
SimpleDateFormat dateFormatTwoDigitsYear = new SimpleDateFormat(TWO_DIGITS_YEAR_DATE_FORMAT); //"dd/MM/yy"
SimpleDateFormat dateFormatFourDigitsYear = new SimpleDateFormat(FOUR_DIGITS_YEAR_DATE_FORMAT);// "yyyy-MM-dd"
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.YEAR, -100);//??? I AM NOT SURE WHY DO I NEEED THIS??
dateFormatTwoDigitsYear.set2DigitYearStart(calendar.getTime());
try
{
dayMonthYear = dateFormatFourDigitsYear.format(dateFormatTwoDigitsYear.parse(dayMonthYear));
}
catch (ParseException e)
{
log.error("Error while formatting date …Run Code Online (Sandbox Code Playgroud) 在我的 Redshift 表中,我有 2 列存储时间戳值:start_date_time 和 end_date_time。
我需要找到start_date_time 和 end_date_time之间的差异,这样,如果差异为 1 天,则结果应为 1。如果 diff 为 12 小时,则结果应为 0.5,如果 diff 为 8 小时 - 则结果应为 0.3333 等。
我怎样才能做到这一点?我尝试使用 datediff 函数:但这不会返回我想要的:
select datediff(day,'2011-12-31 8:30:00','2011-12-31 20:30:00') as day_diff;
Run Code Online (Sandbox Code Playgroud)
结果是 0。但我需要 0.5,因为相差 12 小时。
java ×2
amazon-s3 ×1
annotations ×1
builder ×1
date ×1
date-parsing ×1
datetime ×1
jodatime ×1
lombok ×1
sql ×1