Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java 8链接和数据库实体_Java_Eclipse_Hibernate - Fatal编程技术网

java 8链接和数据库实体

java 8链接和数据库实体,java,eclipse,hibernate,Java,Eclipse,Hibernate,传统上,我总是使用Hibernate实体进行如下操作: @Entity @Table(name = "my_table") @SuppressWarnings("serial") public class MyEntity extends Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "id") private long id; @Column(name = "name") p

传统上,我总是使用Hibernate实体进行如下操作:

@Entity
@Table(name = "my_table")
@SuppressWarnings("serial")
public class MyEntity extends Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;

@Column(name = "name")
private String someName;

@Column(name = "description")
private String description;
 public MyEntity setSomeName(String someName)
 {
     this.someName = someName;
     return this;
 }

public MyEntity setDescription(String description)
{
    this.description = description;
    return this;
}
而能手和二传手看起来就像:

public String getSomeName()
{
    return someName;
}

public void setSomeName(String someName)
{
    this.someName = someName;
}

public String getDescription()
{
    return description;
}

public void setDescription(String description)
{
    this.description = description;
}
然后是Eclipse生成的hashcode、equals和toString方法

现在,我被要求将我的二传手更改为:

@Entity
@Table(name = "my_table")
@SuppressWarnings("serial")
public class MyEntity extends Serializable
{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private long id;

@Column(name = "name")
private String someName;

@Column(name = "description")
private String description;
 public MyEntity setSomeName(String someName)
 {
     this.someName = someName;
     return this;
 }

public MyEntity setDescription(String description)
{
    this.description = description;
    return this;
}
这样我们就可以进行链接:

MyEntity entity = new MyEntity().setSomeName("x").setDescription("y");
这并没有破坏我对CRUD的单元测试,DAO似乎仍然可以正常工作

令人恼火的是,使用Eclipse,我可以很快地生成getter/setter,但现在我需要用“returnthis;”来调整我的所有setter

首先。。。我不确定,但这是Java8的新标准吗?这会不会对长期错误产生任何不利影响,这会占用更多内存,还是会非常高效,我应该这样做

我从JDK1.3开始就在做Java,在过去的15年里,我知道每一项新技术的进步都有它的怪癖。我只是想知道这里有没有


谢谢

这样的链接不应该有任何负面影响,也不是Java8的特性。我会说
MyEntity entity=newmyentity().setSomeName(“x”).setDescription(“y”)
与编译器的观点没有太大区别,编译器认为在单独的语句中调用每个方法(只要实体看起来像上面那样,使用泛型之类的东西可能会使其更复杂)。是的。。。谢谢我得修改一下。我想这会打破塞特的传统。您可以这样做,但这并不像惯例所说的那样
public void setX(cx)
。由于setter已经存在很长时间了,我更喜欢
公共C和x(kx)
约定。现在,您必须键入它。顺便说一句,我认为Eclipse允许编辑代码生成模板()。这不是“Java8”;这样的链接不应该有任何负面影响,也不是Java8的特性。我会说
MyEntity entity=newmyentity().setSomeName(“x”).setDescription(“y”)
与编译器的观点没有太大区别,编译器认为在单独的语句中调用每个方法(只要实体看起来像上面那样,使用泛型之类的东西可能会使其更复杂)。是的。。。谢谢我得修改一下。我想这会打破塞特的传统。您可以这样做,但这并不像惯例所说的那样
public void setX(cx)
。由于setter已经存在很长时间了,我更喜欢
公共C和x(kx)
约定。现在,您必须键入它。顺便说一句,我认为Eclipse允许编辑代码生成模板()。这不是“Java8”;这是最重要的