Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Persisting interfaces using JDO/Datanucleus
- @PersistenceCapable(identityType = IdentityType.APPLICATION, detachable = "true")
- public class TclRequest implements Comparable<TclRequest> {
- @PrimaryKey
- private String id;
- @Persistent(types = { DNSTestData.class, POP3TestData.class, PPPoETestData.class, RADIUSTestData.class }, defaultFetchGroup = "true")
- @Columns({ @Column(name = "dnstestdata_fk"), @Column(name = "pop3testdata_fk"), @Column(name = "pppoetestdata_fk"), @Column(name = "radiustestdata_fk") })
- private TestData testData;
- public String getId() {
- return id;
- }
- public TestData getTestData() {
- return testData;
- }
- public void setId(String id) {
- this.id = id;
- }
- public void setTestData(TestData testData) {
- this.testData = testData;
- }
- }
- @PersistenceCapable(detachable = "true")
- public interface TestData {
- @PrimaryKey
- public String getId();
- public void setId(String id);
- }
- @PersistenceCapable(detachable = "true")
- public class RADIUSTestData implements TestData {
- @PrimaryKey
- private String id;
- private String password;
- private String username;
- public RADIUSTestData() {
- }
- public RADIUSTestData(String password, String username) {
- super();
- this.password = password;
- this.username = username;
- }
- @Override
- public String getId() {
- return id;
- }
- @Override
- public void setId(String id) {
- this.id = id;
- }
- }
- //'o' is the constructed TclRequest object.
- PersistenceManager pm = null;
- Transaction t = null;
- try {
- pm = getPM();
- t = pm.currentTransaction();
- t.begin();
- pm.makePersistent(o);
- t.commit();
- } catch (Exception e) {
- e.printStackTrace();
- if (t != null && t.isActive()) {
- t.rollback();
- }
- } finally {
- closePM(pm);
- }
Add Comment
Please, Sign In to add comment