I've two tables: TaStock and TaStockPrice. Field tastockid in table TaStockPrice is the foreign key to table TaStock.
PHP Code:@Entity
public class TaStock {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Integer id
@OneToMany(mappedBy = "taStock", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<TaStockPrice> tastockpriceList;
public void addTaStockPrice(TaStockPrice taStockPrice) {
if (taStockPrice == null) {
return;
}
taStockPrice.setTaStock(this);
if (tastockpriceList == null) {
tastockpriceList = new ArrayList<TaStockPrice>();
tastockpriceList.add(taStockPrice);
} else if (!tastockpriceList.contains(taStockPrice)) {
tastockpriceList.add(taStockPrice);
}
}
....
}
persisting taStock with ChildrenPHP Code:@Entity
public class TaStockPrice {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Integer id
@Column(insertable = true)
private Integer tastockid;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "tastockid", nullable = false, updatable = false, insertable = false)
private TaStock taStock;
...
}
PHP Code:@Test
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void createTaStock() throws Exception {
TaStock taStock = new TaStock();
...
TaStockPrice taStockPrice = new TaStockPrice();
taStockPrice.setTaStock(taStock);
...
taStock.addTaStockPrice(taStockPrice);
taStockService.persist(taStock);
}
When persisting a parent class, hibernate automatically persist the children of that class. But instead, the following exception occurs:
javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationExcepti on: ERROR: null value in column "tastockid" violates not-null constraint
The DB table looks like this:
Many thanks for help,PHP Code:CREATE TABLE tastockprice
(
id serial NOT NULL,
tastockid integer NOT NULL,
...
CONSTRAINT tastockprice_pkey PRIMARY KEY (id ),
CONSTRAINT tastockprice_tastockid_fkey FOREIGN KEY (tastockid)
REFERENCES tastock (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE
)
Frank


Reply With Quote