java 8链接和数据库实体
传统上,我总是使用Hibernate实体进行如下操作: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
@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”;这是最重要的