我在TypeScript中使用getter/setter访问器.由于变量和方法不可能具有相同的名称,因此我开始使用较低的短划线为变量添加前缀,如许多示例所示:
private _major: number;
get major(): number {
return this._major;
}
set major(major: number) {
this._major = major;
}
Run Code Online (Sandbox Code Playgroud)
现在,当我使用JSON.stringify()方法将对象转换为JSON字符串时,它将使用变量名作为键:_major.
由于我不希望JSON文件的所有键都以下划线作为前缀,因此有可能使TypeScript使用getter方法的名称(如果可用)吗?或者是否有其他方法可以使用getter/setter方法,但仍然可以生成干净的JSON输出?
我知道有些方法可以在将JSON密钥写入字符串输出之前手动修改它们.如果有更简单的解决方案,我很好奇.
这是一个JSFiddle,它演示了当前的行为.
我们有一个多项目gradle设置,每个子项目有一个Java jar:
- root-project
|-sub-project-a
|-sub-project-b
|-sub-project-c
Run Code Online (Sandbox Code Playgroud)
现在,因为我们正在创建Java webstart应用程序,所以我们需要签署所有项目jar以及所有第三方库(依赖项).
我现在的方法是将所有已构建的子项目jar和所有第三方库复制到一个单独的文件夹中,并执行签名任务.但是我无法复制罐子.
这是我在root build.gradle中的方法:
task copyFiles(type: Copy, dependsOn: subprojects.jar) {
from configurations.runtime
from("build/libs")
into("webstart/lib")
include('*.jar')
}
Run Code Online (Sandbox Code Playgroud)
和...一起:
task signAll(dependsOn: [copyFiles]) << {
new File('webstart/signed').mkdirs()
def libFiles = files { file('webstart/lib').listFiles() }
...
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试执行gradle signAll.但是,我只能在webstart/lib文件夹中找到一个带有根项目名称的空jar.
也许我的方法是完全错误的.如何将所有创建的和第三方派对复制到一个文件夹中?
我目前正在为遗留数据库定义 JPA 实体(大量复合键,但也有单列键)。我创建了以下实体超类:
@MappedSuperclass
public abstract class AbstractEntity<ID extends Serializable> {
public abstract ID getId();
public abstract void setId(ID id);
}
Run Code Online (Sandbox Code Playgroud)
然后是复合键的超类(以及长主键的超类,此处未列出):
@MappedSuperclass
public abstract class AbstractEmbeddedIdEntity<ID extends Serializable> extends AbstractEntity<ID> {
@EmbeddedId
private ID id;
public AbstractEmbeddedIdEntity() {
id = newId();
}
@Override
public ID getId() {
return id;
}
@Override
public void setId(ID id) {
this.id = id;
}
protected abstract ID newId();
}
Run Code Online (Sandbox Code Playgroud)
最后是这样的具体实体:
@Entity
@Table(name = "firstEntity")
public class FirstEntity extends AbstractEmbeddedIdEntity<FirstEntityId> {
public FirstEntity() { …Run Code Online (Sandbox Code Playgroud) 我想创建一个使用/导入静态图像的 svelte 组件(基于 webpack)。我如何确保图像被正确导出,即使用我的组件的苗条应用程序也能看到图像?
在我的组件中,我尝试导入图像并使用 webpack 的文件加载器:
import image from "./image.jpg";
Run Code Online (Sandbox Code Playgroud)
和
{
test: /\.(png|svg|jpg|gif)$/,
use: [
'file-loader',
],
}
Run Code Online (Sandbox Code Playgroud)
这有效,图像包含在 dist 文件夹中,但在这种情况下,我还需要向主 svelte 应用程序添加一个文件加载器,这是我想避免的额外要求。主应用程序应该只需要导入我的组件。
这是可能的还是以上已经是推荐的方法?
我正在使用JPA生成用于基于我的实体创建数据库表的脚本:
javax.persistence.schema-generation.scripts.action=create
javax.persistence.schema-generation.scripts.create-target=db_setup.sql
Run Code Online (Sandbox Code Playgroud)
该文件是用正确的表生成的,但是语句不以分号结尾,例如:
create table hibernate_sequence (next_val bigint)
insert into hibernate_sequence values ( 1 )
insert into hibernate_sequence values ( 1 )
Run Code Online (Sandbox Code Playgroud)
我认为这在标准SQL中有效吗?但是,它在MySQL中无效。有没有办法告诉JPA将分号添加到行尾?还是缺少它的原因是什么?