mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
#238 - unsuccessful attempt to reproduce issue 238
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
package com.avaje.tests.model.prnt;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity
|
||||
public class MPrinter {
|
||||
|
||||
@Id
|
||||
Long id;
|
||||
|
||||
@Version
|
||||
Long version;
|
||||
|
||||
String name;
|
||||
|
||||
@Column(name="flags", nullable=false)
|
||||
long allFlags=0L;
|
||||
|
||||
@JoinColumn(name="current_state_id")
|
||||
@ManyToOne
|
||||
MPrinterState currentState;
|
||||
|
||||
@JoinColumn(name="last_swap_cyan_id") @OneToOne private MPrinterState lastTonerSwapCyan;
|
||||
@JoinColumn(name="last_swap_magenta_id") @OneToOne private MPrinterState lastTonerSwapMagenta;
|
||||
@JoinColumn(name="last_swap_yellow_id") @OneToOne private MPrinterState lastTonerSwapYellow;
|
||||
@JoinColumn(name="last_swap_black_id") @OneToOne private MPrinterState lastTonerSwapBlack;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(Long version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public long getAllFlags() {
|
||||
return allFlags;
|
||||
}
|
||||
|
||||
public void setAllFlags(long allFlags) {
|
||||
this.allFlags = allFlags;
|
||||
}
|
||||
|
||||
public MPrinterState getCurrentState() {
|
||||
return currentState;
|
||||
}
|
||||
|
||||
public void setCurrentState(MPrinterState currentState) {
|
||||
this.currentState = currentState;
|
||||
}
|
||||
|
||||
public MPrinterState getLastTonerSwapCyan() {
|
||||
return lastTonerSwapCyan;
|
||||
}
|
||||
|
||||
public void setLastTonerSwapCyan(MPrinterState lastTonerSwapCyan) {
|
||||
this.lastTonerSwapCyan = lastTonerSwapCyan;
|
||||
}
|
||||
|
||||
public MPrinterState getLastTonerSwapMagenta() {
|
||||
return lastTonerSwapMagenta;
|
||||
}
|
||||
|
||||
public void setLastTonerSwapMagenta(MPrinterState lastTonerSwapMagenta) {
|
||||
this.lastTonerSwapMagenta = lastTonerSwapMagenta;
|
||||
}
|
||||
|
||||
public MPrinterState getLastTonerSwapYellow() {
|
||||
return lastTonerSwapYellow;
|
||||
}
|
||||
|
||||
public void setLastTonerSwapYellow(MPrinterState lastTonerSwapYellow) {
|
||||
this.lastTonerSwapYellow = lastTonerSwapYellow;
|
||||
}
|
||||
|
||||
public MPrinterState getLastTonerSwapBlack() {
|
||||
return lastTonerSwapBlack;
|
||||
}
|
||||
|
||||
public void setLastTonerSwapBlack(MPrinterState lastTonerSwapBlack) {
|
||||
this.lastTonerSwapBlack = lastTonerSwapBlack;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.avaje.tests.model.prnt;
|
||||
|
||||
import com.avaje.ebean.event.BeanPersistAdapter;
|
||||
import com.avaje.ebean.event.BeanPersistRequest;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class MPrinterListener extends BeanPersistAdapter {
|
||||
|
||||
Logger logger = LoggerFactory.getLogger(MPrinterListener.class);
|
||||
|
||||
@Override
|
||||
public boolean isRegisterFor(Class<?> cls) {
|
||||
return cls.isAssignableFrom(MPrinter.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean preUpdate(BeanPersistRequest<?> request) {
|
||||
|
||||
logger.info("preUpdate ...");
|
||||
logger.info("preUpdate ..."+request.getUpdatedValues());
|
||||
request.getUpdatedProperties();
|
||||
return super.preUpdate(request);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.avaje.tests.model.prnt;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
@Entity
|
||||
public class MPrinterState {
|
||||
|
||||
@Id
|
||||
Long id;
|
||||
|
||||
@Version
|
||||
Long version;
|
||||
|
||||
long flags;
|
||||
|
||||
@JoinColumn(name="printer_id")
|
||||
@ManyToOne
|
||||
MPrinter printer;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(Long version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public long getFlags() {
|
||||
return flags;
|
||||
}
|
||||
|
||||
public void setFlags(long flags) {
|
||||
this.flags = flags;
|
||||
}
|
||||
|
||||
public MPrinter getPrinter() {
|
||||
return printer;
|
||||
}
|
||||
|
||||
public void setPrinter(MPrinter printer) {
|
||||
this.printer = printer;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.avaje.tests.model.prnt;
|
||||
|
||||
import com.avaje.ebean.BaseTestCase;
|
||||
import com.avaje.ebean.Ebean;
|
||||
import org.junit.Test;
|
||||
|
||||
public class TestPrinterStateIssue extends BaseTestCase {
|
||||
|
||||
@Test
|
||||
public void test() {
|
||||
|
||||
|
||||
MPrinter printer = new MPrinter();
|
||||
printer.setName("foo");
|
||||
printer.setAllFlags(20L);
|
||||
|
||||
Ebean.save(printer);
|
||||
|
||||
MPrinterState state = new MPrinterState();
|
||||
state.setFlags(10L);
|
||||
state.setPrinter(printer);
|
||||
Ebean.save(state);
|
||||
|
||||
printer.setCurrentState(state);
|
||||
Ebean.save(printer);
|
||||
|
||||
|
||||
MPrinter printer1 = Ebean.find(MPrinter.class, printer.getId());
|
||||
MPrinterState state1 = printer1.getCurrentState();
|
||||
state1.setFlags(9L);
|
||||
printer1.setAllFlags(99L);
|
||||
|
||||
|
||||
// BeanState beanState = Ebean.getBeanState(printer1);
|
||||
// Set<String> changedProps = beanState.getChangedProps();
|
||||
// System.out.println("changed: "+changedProps);
|
||||
|
||||
Ebean.save(printer1);
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user