天道酬勤,学无止境

hibernate

How to ignore "handler": {}, "hibernateLazyInitializer": {} in json jackson in Spring hibernate project?

问题 我正在使用fastxml json和对象映射器,下面是我的代码: ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); try { String jsonInString = mapper.writeValueAsString(myClassObjectHere); return new ResponseEntity<String>(jsonInString, HttpStatus.OK); } catch (JsonProcessingException e) { e.printStackTrace(); return new ResponseEntity<String>(HttpStatus.INTERNAL_SERVER_ERROR); } 我实现和使用代码的方式,我得到了想要的输出,但是 json 在某些 json 对象中有 2 个随机奇怪的值,如下所示: "listing": { "listingId": 1, "name": "Business",

2022-05-15 20:22:27    分类:技术分享    java   json   spring   hibernate   jackson

Exception occurred during processing request: null: java.lang.NullPointerException using Spring, Struts 2, Hibernate, MySql

问题 我在使用我的数据库的create和insert方法中遇到问题。 我使用 Struts、Hibernate 和 Mysql 作为数据库。 我一直试图解决这个问题很长时间,但没有任何结果。 我的班级模型: package clowzer.charaf.model; import java.util.Date; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; @Entity @Table (name="JOUEUR") public class Joueur{ @Id @Column(name="id") private Integer id; @Column(name="nom" ) private String nom; @Column(name="prenom") private String prenom; @Column(name="pseudo") private String pseudo; @Column(name=

2022-05-15 15:17:10    分类:技术分享    mysql   spring   hibernate   struts2   integration

Hibernate infinite loop recursion in many to many relation

问题 我想创建双向的学生-学科关系。 在我为用户注册纪律之前,一切正常。 现在我得到了无限递归。 类看起来像这样: //Student.java @Entity @Table(name = "students") public class Student { @NotNull @Id @Column(name = "STUDENT_ID") private String id; private String name; @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @JoinTable(name = "students_disciplines", joinColumns = @JoinColumn(name = "STUDENT_ID"), inverseJoinColumns = @JoinColumn(name = "DISCIPLINE_ID")) @JsonSerialize(using = NestedDisciplineSetSerializer.class) private Set<Discipline> disciplines = new HashSet<>(); //Getters, Setters } //NestedDisciplineSetSerializer.java

2022-05-15 13:34:18    分类:技术分享    java   hibernate   recursion   many-to-many

Is there a way in Hibernate to obtain an entity's loaded PersistentCollection without loading the entire entity object first?

问题 这是一个谜题! :D 有没有办法强制 Hibernate 为实体加载集合而不首先加载整个实体? 让我更好地解释。 我有一个这样注释的角色实体: @Entity(name="Role") @Table(name = "ROLES") @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) @javax.persistence.TableGenerator( name="GENERATED_IDS", table="GENERATED_IDS", valueColumnName = "ID" ) public abstract class Role implements Serializable { private static final long serialVersionUID = 1L; /** * The id of this role. Internal use only. * * @since 1.0 */ @Id @GeneratedValue(strategy = GenerationType.TABLE, generator="GENERATED_IDS") @Column(name = "ROLE_ID") protected long id; /** * Set of permissions

2022-05-15 12:41:09    分类:技术分享    java   hibernate   internals

Postgres get first and last version for individual vendor

问题 我有 RFQ(报价请求)和供应商投标金额与版本的映射表。 桌子 : id rfq_id(FK) vendor_id(FK) amount version ----------------------------------------------- 1 1 1 100 1 2 1 1 90 2 3 1 1 80 3 4 1 2 50 1 5 1 7 500 1 6 1 7 495 2 7 1 7 500 3 8 1 7 525 4 9 1 7 450 5 10 1 7 430 6 11 2 1 200 1 12 2 2 300 1 13 2 2 350 2 14 2 3 40 1 15 3 4 70 1 在上表中,我想分析供应商对特定rfq_id的第一次和最后一次出价。 rfq_id=1 的预期输出: vendor_id first_bid last_bid --------------------------------- 1 100 80 2 50 50 7 500 430 从 Postgres:获取多对多关系表中的最小和最大行数我已经了解了window和partition 。 所以我尝试了以下查询。 SELECT vendor_id, version, amount, first_value(amount) over w as first_bid, last_value

2022-05-15 12:08:21    分类:技术分享    sql   postgresql   hibernate   ejb

Spring Data doesn't seem to understand @Column name

问题 我正在使用 Spring-boot 1.4.1.RELEASE、Spring Data 和 Hibernate 将一些数据保存到 MySQL 数据库中。 我有这个类, Respondent ,用@Entity注释,其中一个字段注释如下: @Column(name = "firstName", nullable = false, length = 100) private String firstName; 当我尝试通过在其CrudRepository<Respondent, Long>上调用save()将响应者保存到数据库时,我收到此错误: ERRORcom.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'first_name' in 'field list' 在我为该字段添加@Column注释之前,这个错误就开始发生了,所以我认为将 firstName 映射到 first_name 是一些默认的 Hibernate 行为,但是我已经向它添加了@Column注释并且没有任何改变。 还是错了吗? 我已经用mvn clean package重建了应用程序。 这是我的受访者实体: @Entity public class Respondent { @Id @GeneratedValue

2022-05-15 11:58:09    分类:技术分享    mysql   hibernate   spring-boot   spring-data   spring-data-jpa

Mapping to an older revision of an entity with JPA annotations

问题 我最近发现了用于审计的 envers 并且能够成功地使用它来跟踪修订并使用@Audited注释和AuditReader获取它们。 现在,我想要实现的是在它们所做的修订而不是最新修订中保留对被审计实体的映射。 快速示例: 假设我有一个饼干配方,我用它来制作一批饼干(下面的类的伪类)。 每个配方都有一个要遵循的说明列表,这样做会创建一个批次: @Audited @Table(name="recipes") class CookieRecipe { @OneToMany(mappedBy="recipe") private List<RecipeStep> steps; private void addStep(String instruction) { steps.add(new RecipeStep(instruction)); } } @Table(name="batches") class CookieBatch { @ManyToOne @JoinColumn(...) private CookieRecipe recipe; } @Audited @Table(name="recipe_step") class RecipeStep { @Column private String instruction; @ManyToOne @JoinColumn(...)

2022-05-15 07:18:16    分类:技术分享    hibernate   jpa   hibernate-envers

Custom type / converter in conjunction with Hibernate's Transformers.aliasToBean

问题 我在 Hibernate 中执行本机查询,我想将结果集转换为 MyDto 的列表。 使用本机查询时,我们通常遵循以下模式: String query = "SELECT first_name as firstName, birth_date as birthDate ..." def results = session.createSQLQuery(query) .setResultTransformer(Transformers.aliasToBean(MyDto.class)) .list(); 问题是我们将 Joda-time 用于我们的日期类(在这种情况下,birthDate 是一个 LocalDate)。 对于普通的 Hibernate 查询,这很好(我们有自己的简单用户类型)。 但是对于本机查询,我们通常在 Dto 类中使用 java.util.Date 作为解决方法。 我希望在我们的 Dtos 中保留 Joda 类型(LocalDate、Instant 等)以与我们的实体保持一致。 我在网上找到了一种解决方法,如下所示: // GrailsLocalDate is our custom UserType class for joda's LocalDate class Type localDateType = new TypeLocatorImpl( new

2022-05-15 02:35:03    分类:技术分享    java   hibernate   grails

How do i pass a jdbc paramater using springboot and hibernate?

问题 我有一个用 spring-boot 编写的应用程序(我是新手,所以如果问题很愚蠢,请原谅我),它使用 hibernate 4 和 postgresql 作为数据库后端。 我注意到数据库上有一堆属于连接池的连接说明:“SET extra_float_digits = 3” 谷歌搜索,我发现这可能是由于使用了旧协议,并且可以使用 jdbc 驱动程序的假设MinServerVersion参数来避免。 现在我的问题是:我如何从 spring-boot 应用程序传递/设置该参数? 回答1 spring.datasource.url=jdbc:postgresql://localhost/test?assumeMinServerVersion=XYZ

2022-05-15 02:25:04    分类:技术分享    postgresql   hibernate   jdbc   spring-boot

How to extract year,month from a date and multiple columns using projections with group by and given as alias name by using hibernate Criteria

问题 我必须通过使用 groupby 和多个列也使用投影列表来获得一些 id 计数,并且我想为某些列设置别名,现在我提供 sql 查询示例 String sql ="select createdby,count(id) as created_by_count,EXTRACT(YEAR FROM createdon) as year,to_char(createdon, 'Month') as month from projects where createdon BETWEEN '"+fromDate+"' AND '"+todate+"' group by createdby,EXTRACT(YEAR FROM createdon),to_char(createdon, 'Month') order by createdby,year,month" 我用crietria这样写 ProjectionList projList = Projections.projectionList(); projList.add(Projections.property("id.createdby")); projList.add(Projections.groupProperty("id.createdby")); projList.add(Projections.sqlProjection(

2022-05-15 01:36:20    分类:技术分享    java   postgresql   hibernate