标签: pojo

如何创建POJO?

最近我开始听说"POJO"(Plain Old Java Objects).我用Google搜索,但仍然不理解这个概念.任何人都可以给我一个明确的POJO描述吗?

考虑具有变量"id,name,address,salary"的类"Person" - 我将如何为此场景创建POJO?代码是否低于POJO?

public class Person {
    //variables
    People people = new People();
    private int id;
    private String name;
    private String address;
    private int salary;


    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public String getAddress() {
        return address;
    }

    public int getSalary() {
        return salary;
    }

    public void setId() {
        this.id = id;
    }

    public void setName() {
        this.name = name;
    }

    public void setAddress() {
        this.address = address; …
Run Code Online (Sandbox Code Playgroud)

java pojo

66
推荐指数
3
解决办法
12万
查看次数

如何将POJO转换为JSON,反之亦然?

我想知道是否有可用于将POJO对象转换为JSON对象的Java API,反之亦然.

java json pojo

50
推荐指数
3
解决办法
12万
查看次数

使用根元素的Jackson JSON反序列化

我和杰克逊有一个问题,我觉得应该很容易解决,但这让我很伤心.

假设我有一个看起来像这样的java POJO类(假设Getters和Setters对我来说):

class User {
    private String name;
    private Integer age;
}
Run Code Online (Sandbox Code Playgroud)

我想将看起来像这样的JSON反序列化为User对象:

{
  "user":
    {
      "name":"Sam Smith",
      "age":1
  }
}
Run Code Online (Sandbox Code Playgroud)

杰克逊给了我一些问题,因为用户不是JSON中的第一级对象.我显然可以创建一个具有单个User对象的UserWrapper类,然后使用它进行反序列化,但我知道必须有一个更优雅的解决方案.

我该怎么做?

java json pojo jackson

41
推荐指数
1
解决办法
5万
查看次数

在hibernate映射中使用包装器Integer类或int原语

在我工作的公司中,我们有一个关于是否应该更好地使用基元的包装类(java.lang.Integer,java.lang.Long)或是否直接在映射的POJO中使用基元类型的讨论Hibernate中表的实体.

我们的想法是,我们希望这些值在数据库中不为空.

支持使用原语的论据:

  • 将这些值作为int处理意味着它们永远不能为空,这样就不可能无意中在字段上获得空引用.
  • int = 32/64位内存.整数= 16字节的内存,也慢

支持使用包装器对象的参数:

  • 我们可以在数据库级别添加一个约束,以始终阻止空值到达那里
  • 我们最终可能会产生误导性数据,只要用户没有设置值并且错误的数据是一个难以捕获的数据,我们就可以在数据库中使用0而不是空值.
  • 物体比原始物具有更强的表达能力.我们有空值和整数值,因此我们可以使用注释(javax.validation.constraints.NotNull)更容易地验证它们.

java hibernate pojo primitive-types

37
推荐指数
3
解决办法
2万
查看次数

ArrayList - 如何修改对象的成员?

我有一些Customer存储在ArrayList中的对象.我的Customer班级有2个数据成员:NameEmail.现在我想修改Emailfor Customer"Doe".

现在,如果"Doe"位于列表中的索引3,我知道我可以写下这一行:

myList.set( 3, new Customer( "Doe", "j.doe@supermail.com" ) );
Run Code Online (Sandbox Code Playgroud)

但这意味着要创建一个新对象.如果我有一个非常大的列表,我想这个过程会很慢.有没有其他方法直接访问存储在ArrayList中的Object的数据成员,可能使用另一种Collection而不是ArrayList?

java collections pojo

34
推荐指数
4
解决办法
10万
查看次数

将NativeQuery结果映射到POJO

我试图使用带@ConstructorResult的@SqlResultSetMapping将Native查询的结果映射到POJO.这是我的代码:

@SqlResultSetMapping(name="foo",
    classes = {
        @ConstructorResult(
                targetClass = Bar.class,
                columns = {
                    @ColumnResult(name = "barId", type = Long.class),
                    @ColumnResult(name = "barName", type = String.class),
                    @ColumnResult(name = "barTotal", type = Long.class)
                })
    })

public class Bar {

private Long barId;
private String barName;
private Long barTotal;

...
Run Code Online (Sandbox Code Playgroud)

然后在我的DAO中:

Query query = em.createNativeQueryBar(QUERY, "foo");
... set some parameters ...
List<Bar> list = (List<Bar>) query.getResultList();
Run Code Online (Sandbox Code Playgroud)

我已经读过这个功能仅在JPA 2.1中受支持,但这正是我正在使用的.这是我的依赖:

        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.1-api</artifactId>
            <version>1.0.0.Final</version>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

我发现了一些资源,包括这一个:jpa 2.1中的@ConstructorResult映射.但我仍然没有运气.

我错过了什么?为什么不能找到SqlResultSetMapping?

javax.persistence.PersistenceException: org.hibernate.MappingException: Unknown SqlResultSetMapping [foo]
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa pojo

34
推荐指数
5
解决办法
6万
查看次数

POJO与Android中的游标

我通常倾向于使用POJO定义我的应用程序的模型层,例如文章,评论等.

我准备在我的一个ListViews的适配器中实现AlphabetIndexer.现在这个适配器接受一个文章集合,我通常从我的包装器中获取SQLiteDatabase.

AlphabetIndexer构造函数的签名如下:

public AlphabetIndexer (Cursor cursor, int sortedColumnIndex, CharSequence alphabet)
Run Code Online (Sandbox Code Playgroud)

由于这不接受Collection或类似的东西,只是一个Cursor,它让我想知道:也许我不应该为我的模型创建对象,只是使用从数据库返回的Cursors?

所以问题是,我猜:我应该怎么做,用POJO的集合表示数据,或者只是在我的应用程序中使用游标?

有什么输入?

android cursor pojo

33
推荐指数
3
解决办法
7445
查看次数

如何在YAML文件中为简单的POJO定义地图?

我正在使用snakeYaml将某些配置/属性值解析为Configuration对象.

我的yaml文件看起来像这样 -

#Thread
batchLimit: 1000
threadCountLimit: 2

#Some More Config
key: value

#MAP
keyMapping: <What goes here?>
Run Code Online (Sandbox Code Playgroud)

我的Configuration类看起来像这样 -

public class Configuration{
  int batchlimit;
  int threadCountLimit;
  ...
  Map<String,String> keyMapping;
}
Run Code Online (Sandbox Code Playgroud)

如何keyMapping在YAML文件中定义它以便直接通过SnakeYAML读取?

java yaml pojo snakeyaml

32
推荐指数
1
解决办法
5万
查看次数

为Kotlin创建POJO类

我想为Kotlin创建POJO类,因为我们知道www.jsonschema2pojo.org将JSON转换为POJO,因此我们可以将它与gson一起使用.

任何人都知道如何快速为Kotlin创建Gson POJO

编辑:

我知道它使用数据类,但有没有最简单的方法来创建它?

java android pojo gson kotlin

32
推荐指数
6
解决办法
3万
查看次数

杰克逊:有没有办法将POJO直接序列化为树模型?

我正在寻找一种方法将一些POJO直接转换为Jackson TreeModel.我知道存在从POJO到JSON-String的转换,并且支持TreeModel到JSON-String - hovewer我正在寻找POJO到TreeModel的转换.有办法吗?

用例如下:

  • 服务器端模板是使用Mustache的Java实现完成的.这使用Jackson的TreeModel.
  • 在那之后,我需要在客户端使用TreeModel的精简版本,所以我希望能够首先过滤TreeModel,将其序列化为JSON,然后将其发送到客户端进行进一步处理.

理想情况下,这涉及两个序列化步骤.但是,在我的解决方法中,我目前正在使用三个 - 您可以在此处看到:

map = // a map of  pojos with jackson annotations

//pojo >> JSON
StringWriter w = new StringWriter();    
objectmapper.writeValue(new JsonFactory().createJsonGenerator(w), map);
String json = w.toString();
w.close();

//JSON >> Treemodel
JsonNode tree = GenericJcrDTO.mapper.readTree(json);
//filter tree here

//treemodel >>JSON
StringWriter w = new StringWriter();
GenericJcrDTO.mapper.writeValue(new JsonFactory().createJsonGenerator(w), tree);
json = w.toString();
w.close();
Run Code Online (Sandbox Code Playgroud)

任何人?

serialization json pojo jackson

30
推荐指数
1
解决办法
2万
查看次数