Rolle zu initialisieren Ich habe One-To-Many Beziehung, hier mein CodeInhalt nicht schreiben kann: failed faul, um eine Sammlung von
@Entity
@Table(name = "catalog")
public class Catalog {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "catalog_id")
private int catalog_id;
@NotEmpty
@Size(min = 3, max = 255)
@Column(name = "name", nullable = false)
private String name;
@OneToMany(mappedBy="mycatalogorder")
private List<Order> orders;
@OneToMany(mappedBy="mycatalog")
private List<CatalogItem> items;
// setters and getters
}
@Entity
@Table(name = "catalogitem")
public class CatalogItem {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "catalogitem_id")
private int catalogitem_id;
@NotEmpty
@Size(min = 3, max = 255)
@Column(name = "name", nullable = false)
private String name;
@NotEmpty
@Column(name = "price", nullable = false)
private Double price;
@OneToOne(mappedBy="ordercatalogitem", cascade=CascadeType.ALL)
private OrderItem morderitem;
@ManyToOne
@JoinColumn(name="catalog_id", nullable=false)
private Catalog mycatalog;
// setters and getters
}
@Entity
@Table(name = "orders")
public class Order {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "order_id")
private int order_id;
@NotEmpty
@Size(min = 3, max = 255)
@Column(name = "name", nullable = false)
private String name;
@NotEmpty
@Size(min = 3, max = 1024)
@Column(name = "note", nullable = false)
private String note;
@Temporal(TemporalType.TIMESTAMP)
@DateTimeFormat(pattern = "ddmmYYYY HH:mm:ss")
@Column(name = "created", nullable = false)
private Date created;
@OneToMany(mappedBy="myorder")
private Set<OrderItem> orderItems;
@ManyToOne
@JoinColumn(name="catalog_id", nullable=false)
private Catalog mycatalogorder;
@PrePersist
protected void onCreate() {
created = new Date();
}
// setters and getters
}
@Entity
@Table(name = "orderitem")
public class OrderItem {
@Id
@Column(name="catalogitem_id", unique=true, nullable=false)
@GeneratedValue(generator="gen")
@GenericGenerator(name="gen", strategy="foreign", [email protected](name="property", value="catalogitem"))
private int catalogitem_id;
@Column(name = "quantity")
private int quantity;
@OneToOne
@PrimaryKeyJoinColumn
private CatalogItem ordercatalogitem;
@ManyToOne
@JoinColumn(name="order_id", nullable=false)
private Order myorder;
// setters and getters
}
ist und ich bin die Ausnahme bekommen:
org .springframework.http.converter.HttpMessageNotWritableException: kann nicht Inhalte schreiben: failed lazily eine Sammlung von Rolle zu initialisieren: com.example.helios.model.Catalog.items, nicht Proxy initialisiert werden konnte - keine Session; verschachtelte Ausnahme ist com.fasterxml.jackson.databind.JsonMappingException: failed zu träge eine Sammlung von Rolle initialisieren: com.example.helios.model.Catalog.items, konnte nicht Proxy initialisieren - keine Sitzung org.springframework. http.converter.json.AbstractJackson2HttpMessageConverter.writeInternal (AbstractJackson2HttpMessageConverter.java:271) org.springframework.http.converter.AbstractGenericHttpMessageConverter.write (AbstractGenericHttpMessageConverter.java:100) org.springframework.web.servlet.mvc.method.annotation. AbstractMessageConverterMethodProcessor.writeWithMessageConverters (AbstractMessageConverterMethodProcessor.java:222) org.springframework.web.servlet.mvc.method.annotation.HttpEntityMethodProcessor.handleReturnValue (HttpEnt ityMethodProcessor.java:183) org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue (HandlerMethodReturnValueHandlerComposite.java:80) org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle (ServletInvocableHandlerMethod.java: 126)
Meine Versionen ist:
- spring 4.2.4.RELEASE
- Hibernate 4.3.11.Final
- Jackson 2.7 0,4
- Jacksontype 2.7.1
Danke, Lösung # 1 für mich gearbeitet. – KostasC
Lösung # 2 arbeitete für mich wie ein Charme! Prost! –
aber die zweite Lösung ist statisch .. in einem Projekt brauchen wir manchmal die zugehörigen Entitäten und manchmal nein. Dieser EntityManager-Lebenszyklus mit der automatischen Serialisierung im Frühjahr ist eine schreckliche Falle. –